Python Glossary English

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

traceback.format_exception()

трассировка в строку

Список строк полной трассировки для переданного исключения — как format_exc(), но для любого сохранённого объекта, а не только текущего.

Синтаксис

lines = traceback.format_exception(exc, /, limit=None, chain=True)

С Python 3.10 достаточно одного аргумента: format_exception(e); старая форма format_exception(type(e), e, e.__traceback__) тоже работает. Элемент списка может содержать несколько строк текста, поэтому склеивают ''.join(), а не '\n'.join() — иначе появятся пустые строки. У исключения, которое создали, но не поднимали, трассировки нет: результат — одна строка с типом и сообщением.

Примеры

# Python 3.10+
import traceback
print(traceback.format_exception(ValueError('плохо')))  # → ['ValueError: плохо\n']
try:
    {}['k']
except KeyError as e:
    saved = e
text = ''.join(traceback.format_exception(saved))
print(text.splitlines()[-1])  # → KeyError: 'k'

См. также

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