Python Glossary English

все Python 3tracebackфункция

traceback.extract_tb()

кадры и стек

Превращает трассировку исключения в StackSummary — список кадров с файлом, строкой и функцией, который удобно разбирать программно.

Синтаксис

traceback.extract_tb(tb, limit=None)

Принимает объект трассировки e.__traceback__, а не само исключение: extract_tb(e) упадёт с AttributeError. Кадры идут от внешнего к месту ошибки: [-1] — строка, где исключение возникло, [0] — кадр, где его поймали. В трассировку попадает только путь от try до места ошибки, а не весь стек программы: кадры выше функции с try в неё не входят — их показывает extract_stack().

Примеры

import traceback
def parse(s):
    return int(s)
try:
    parse('x')
except ValueError as e:
    frames = traceback.extract_tb(e.__traceback__)
print([(f.name, f.lineno) for f in frames])  # → [('<module>', 5), ('parse', 3)]
import traceback
try:
    1 / 0
except ZeroDivisionError as e:
    traceback.extract_tb(e)  # → AttributeError: 'ZeroDivisionError' object has no attribute 'tb_frame'

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности