如何在Python 2.7中获取异常对象的堆栈跟踪?
我怎样才能从异常对象本身获取完整的堆栈跟踪信息呢?
下面的代码是这个问题的一个简化示例:
last_exception = None
try:
raise Exception('foo failed')
except Exception as e:
print "Exception Stack Trace %s" % e
1 个回答
5
堆栈跟踪(stack trace)并不是直接保存在异常对象里的。不过,你可以使用 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()
的返回值存储到某个地方。