如何从Python中的异常对象获取堆栈跟踪?

如何从Python中的异常对象获取堆栈跟踪?,python,exception-handling,stack-trace,Python,Exception Handling,Stack Trace,如何从异常对象本身获取完整的堆栈跟踪 将以下代码作为问题的简化示例: 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)

如何从异常对象本身获取完整的堆栈跟踪

将以下代码作为问题的简化示例:

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)
编辑:对不起,我撒谎了。e、 追踪是你想要的

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

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

这是在Python3中;在早期版本中不能这样做。

这不是来自异常对象本身,而是从执行跟踪中抛出异常。不,在Python 3中显然是这样的。。。我刚试过这个,效果很好@Katrielex,在Python2.7中我该怎么做,我似乎找不到它。谢谢。@Kamilski:据我所知,您不能直接从异常对象获取它;您必须使用回溯和/或检查模块。可能是重复的,是的,但这个问题没有令人满意的答案!