Как обработать AssertionError в Python и выяснить, в какой строке или операторе она возникла?

Я хочу обрабатывать AssertionErrorкак для того, чтобы скрыть ненужные части трассировки стека от пользователя, так и для вывода сообщения о том, почему произошла ошибка и что пользователь должен с этим делать.

Есть ли способ узнать, в какой строке или операторе assertпроизошел сбой в блоке except?

try:
    assert True
    assert 7 == 7
    assert 1 == 2
    # many more statements like this
except AssertionError:
    print 'Houston, we have a problem.'
    print
    print 'An error occurred on line ???? in statement ???'
    exit(1)

Я не хочу добавлять это в каждый оператор assert:

assert 7 == 7, "7 == 7"

потому что он повторяет информацию.

50
задан Stevoisiak 28 February 2018 в 04:51
поделиться