Как получить трассировку стека от объекта исключения в Python 2.7? - PullRequest
7 голосов
/ 08 июля 2011

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

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

last_exception = None
try:
    raise Exception('foo failed')
except Exception as e:
    print "Exception Stack Trace %s" % e

1 Ответ

5 голосов
/ 08 июля 2011

Сама трассировка стека не сохраняется в самом объекте исключения.Однако вы можете напечатать трассировку стека последнего недавнего исключения, используя sys.exc_info() и модуль traceback.Пример:

import sys
import traceback

try:
    raise Exception('foo failed')
except Exception as e:
    traceback.print_tb(*sys.exc_info())

Если вы не хотите немедленно отображать трассировку стека, должна быть возможность хранить возвращаемое значение sys.exc_info() где-то.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...