Python Glossary English

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

traceback.print_exception()

печать трассировки

Печатает трассировку переданного исключения в stderr — как print_exc(), но для сохранённого объекта исключения.

Синтаксис

traceback.print_exception(exc, /, limit=None, file=None, chain=True)

С Python 3.10 принимает одно исключение: print_exception(e); в старом коде встречается print_exception(*sys.exc_info()). По умолчанию (chain=True) печатается вся цепочка: причина из raise … from … («The above exception was the direct cause») и исключение, при обработке которого возникло новое. limit ограничивает число кадров, file= — поток вывода.

Примеры

# Python 3.10+
import io, traceback
try:
    try:
        int('x')
    except ValueError as e:
        raise RuntimeError('конфиг не прочитан') from e
except RuntimeError as err:
    saved = err
buf = io.StringIO()
traceback.print_exception(saved, file=buf)
print('direct cause' in buf.getvalue())  # → True
print(buf.getvalue().splitlines()[-1])  # → RuntimeError: конфиг не прочитан

См. также

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