Python Glossary English

все 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Сообщить о неточности