我想將錯誤的名稱和追溯詳細信息保存到變量中。這是我的嘗試。如何在一個變量中保存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