Python中捕獲異常錯誤的各種方法

'''
異常信息的獲取對于程序的調試非常重要,可以有助于快速定位有錯誤程序語句的位置。下面介紹幾種python中獲取異常信息的方法,
這里獲取異常(Exception)信息采用try...except...程序結構。如下所示:
try:

...

except Exception as e:

...
1、str(e)

返回字符串類型,只給出異常信息,不包括異常信息的類型,如1/0的異常信息

'integer division or modulo by zero'

2、repr(e)

給出較全的異常信息,包括異常信息的類型,如1/0的異常信息

"ZeroDivisionError('integer division or modulo by zero',)"

3、e.message

獲得的信息同str(e)

4、采用traceback模塊

需要導入traceback模塊,此時獲取的信息最全,與python命令行運行程序出現錯誤信息一致。使用traceback.print_exc()打印異常信息到標準錯誤,
就像沒有獲取一樣,或者使用traceback.format_exc()將同樣的輸出獲取為字符串。你可以向這些函數傳遞各種各樣的參數來限制輸出,或者重新打印到像文件類型的對象。
'''
import traceback

print '########################################################'
print "1/0 Exception Info"
print '---------------------------------------------------------'
try:
1/0
except Exception as e:
print 'str(Exception):\t', str(Exception)
print 'str(e):\t\t', str(e)
print 'repr(e):\t', repr(e)
print 'e.message:\t', e.message
print 'traceback.print_exc():'; traceback.print_exc()
print 'traceback.format_exc():\n%s' % traceback.format_exc()
print '########################################################'
print '\n########################################################'
print "i = int('a') Exception Info"
print '---------------------------------------------------------'
try:
i = int('a')
except Exception as e:
print 'str(Exception):\t', str(Exception)
print 'str(e):\t\t', str(e)
print 'repr(e):\t', repr(e)
print 'e.message:\t', e.message
print 'traceback.print_exc():'; traceback.print_exc()
print 'traceback.format_exc():\n%s' % traceback.format_exc()
print '########################################################'

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容