все Python 3typesпонятие
types.TracebackType
объекты интерпретатора
Тип трассировки исключения: цепочка кадров от места перехвата до места ошибки. Доступна как exc.__traceback__.
Синтаксис
exc.__traceback__
Цепочка идёт через tb_next, и строка с ошибкой — у последнего звена, а не у первого: первый tb_lineno указывает на строку внутри try. Сохранённое исключение держит свою трассировку, а она — все кадры с локальными переменными: поэтому Python сам удаляет имя из except ... as e в конце блока. Готовый текст даёт модуль traceback, вручную обходить цепочку нужно редко.
Примеры
import types
def inner():
return 1 / 0
try:
inner()
except ZeroDivisionError as e:
tb = e.__traceback__
print(isinstance(tb, types.TracebackType)) # → True
while tb.tb_next:
tb = tb.tb_next
print(tb.tb_frame.f_code.co_name) # → inner
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности