Python Glossary English

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

traceback.format_exc()

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

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

Синтаксис

text = traceback.format_exc(limit=None, chain=True)

Работает только внутри except (или в функции, вызванной оттуда): вне обработки вернёт строку 'NoneType: None\n', а не ошибку, и пустой отчёт легко не заметить. Если исключение возникло внутри другого except, в текст войдёт и первое — после фразы «During handling of the above exception…»; chain=False оставит только последнее. Для лога короче logger.exception('…'): он сам допишет ту же трассировку.

Примеры

import traceback
try:
    1 / 0
except ZeroDivisionError:
    text = traceback.format_exc()
print(text.splitlines()[0])  # → Traceback (most recent call last):
print(text.splitlines()[-1])  # → ZeroDivisionError: division by zero
import traceback
print(repr(traceback.format_exc()))  # → 'NoneType: None\n'

См. также

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