Как при oбработкe исключений и поиске строки с ошибкой воспользоваться exc_info()?
Для решения вопроса о поиске строки с ошибкой, англоязычные коллеги предлагают следующее решение:
import sys
try:
строка с ошибкой
except IndexError:
# Python 3
print("Error on line {}".format(sys.exc_info()[-1].tb_lineno))
Все работает прекрасно. Однако, нет пояснения о том, что это такое
sys.exc_info()[-1].tb_lineno
Как я понял, метод exc_info() - это кортеж, а [-1] - это предпоследний индекс этого кортежа.
Не понятно, что за объект tb_lineno и что эти ребята делают все в общей связке.
Объясните, пожалуйста, что происходит в этой строке.
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
если хотите разобраться, то разбейте решение на части. Присвойте новой переменной значение
x = sys.exc_info()[-1]
print(x)
Посмотрите на тип значения:
print(type(x))
Проверьте какие атрибуты и методы есть у данного объекта:
print(dir(x))