Как получить трассировку стека от объекта исключения в Python? - PullRequest
5 голосов
/ 29 июля 2010

Как получить полную трассировку стека от самого объекта Exception?

Рассмотрим следующий код как уменьшенный пример проблемы:

last_exception = None
try:
    raise Exception('foo failed')
except Exception as e:
    last_exception = e
# this happens somewhere else, decoupled from the original raise
print_exception_stack_trace(last_exception)

1 Ответ

2 голосов
/ 29 июля 2010

Редактировать: я солгал, извините. e.__traceback__ это то, что вы хотите.

try:
    raise ValueError
except ValueError as e:
    print( e.__traceback__ )

>c:/python31/pythonw -u "test.py"
<traceback object at 0x00C964B8>
>Exit code: 0

Это действует только в Python 3; вы не можете сделать это в более ранних версиях.

...