我想将错误的名称和追溯详细信息保存到变量中。这是我的尝试。如何在一个变量中保存traceback/sys.exc_info()值?
import sys
try:
try:
print x
except Exception, ex:
raise NameError
except Exception, er:
print "0", sys.exc_info()[0]
print "1", sys.exc_info()[1]
print "2", sys.exc_info()[2]
输出:
0 <type 'exceptions.NameError'>
1
2 <traceback object at 0xbd5fc8>
所需的输出:
0 NameError
1
2 Traceback (most recent call last):
File "exception.py", line 6, in <module>
raise NameError
P.S.我知道这可以使用traceback模块轻松完成,但我想知道sys.exc_info()[2]对象在这里的用法。
你可能误会了什么是你的程序怎么回事:你指的是什么为“sys.exc_info()[2]物体”追溯对象的实例(=您正在使用的追踪模块已经)。现在,您可以在不使用追踪模块中的辅助函数的情况下操作该对象,但这并不会改变您仍在使用它的事实。 :) – mac
你试过打印sys.exc_info()[x] .__ str __()吗? – zmbq
So @mac请帮助我使用或不使用辅助函数来访问此对象的值。 – codersofthedark