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