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