如何在变量中保存traceback / sys.exc_info()值?
发布于 2021-01-29 18:32:20
我想将错误的名称和追溯详细信息保存到变量中。这是我的尝试。
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
PS:我知道可以使用追溯模块轻松完成此操作,但是我想在此了解sys.exc_info()[2]对象的用法。
关注者
0
被浏览
45
1 个回答
-
这是我的方法:
>>> import traceback >>> try: ... int('k') ... except: ... var = traceback.format_exc() ... >>> print var Traceback (most recent call last): File "<stdin>", line 2, in <module> ValueError: invalid literal for int() with base 10: 'k'
但是,您应该看看traceback文档,因为您可能会发现更合适的方法,这取决于您以后要如何处理变量…