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