这是我的异常类,
class SampleError(Exception):
def __init__(self):
self.history = Stack()
这是函数,
def f(x):
raise SampleError
运行f(x)时,如何存储在引发SampleError时创建的堆栈。
一如既往地谢谢!
答案 0 :(得分:2)
如果通过“store”表示分配给变量进行分析,请使用sys.exc_info()
:
import sys
try:
f()
except:
exc_type, exc, trace = sys.exc_info() # trace is the traceback object
请注意有关规范中的循环引用的警告。
答案 1 :(得分:1)
只需查看traceback模块即可。它将使您能够从任何实例生成回溯。您也可以在进行一些后期处理后以任何形式存储。
答案 2 :(得分:1)
也许你正在尝试做这样的事情???
导入追溯
class SampleError(Exception):
def __init__(self):
self.history = traceback.extract_stack()
def f(x):
raise SampleError
try:
f(5);
except SampleError, e:
print e.history
out = traceback.format_list(e.history)
print out[0]
答案 3 :(得分:0)
如果您只想访问异常属性:
try:
f()
except SampleError, error:
history = error.history