Kam*_*i81 7 python exception-handling
如何从Exception对象本身获取完整的堆栈跟踪?
请考虑以下代码作为问题的简化示例:
last_exception = None
try:
raise Exception('foo failed')
except Exception as e:
print "Exception Stack Trace %s" % e
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪本身不存储在异常对象本身中.但是,您可以使用sys.exc_info()
和traceback
模块打印上一个最近异常的堆栈跟踪.例:
import sys
import traceback
try:
raise Exception('foo failed')
except Exception as e:
traceback.print_tb(*sys.exc_info())
Run Code Online (Sandbox Code Playgroud)
如果您不想立即显示堆栈跟踪,则应该可以存储sys.exc_info()
某处的返回值.