如何从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:据我所知,您不能直接从异常对象获取它;您必须使用回溯和/或检查模块。可能是重复的,是的,但这个问题没有令人满意的答案!