Python traceback 獲取詳細的異常信息

python中用於處理異常棧的模塊是traceback模塊,它提供了print_exception、format_exception等輸出異常棧等經常使用的工具函數。python

應用實例

try:  
    1/0  
except Exception,e:  
    print e

輸出結果是函數

integer division or modulo by zero

只知道是報了這個錯,可是殊不知道在哪一個文件哪一個函數哪一行報的錯。工具

使用 traceback 模塊

import traceback  
try:  
    1/0  
except Exception,e:  
    traceback.print_exc()

輸出結果是調試

Traceback (most recent call last):
File "test_traceback.py", line 3, in <module>
1/0
ZeroDivisionError: integer division or modulo by zero

這樣很是直觀有利於調試。
其實traceback.print_exc()函數只是traceback.print_exception()函數的一個簡寫形式,而它們獲取異常相關的數據都是經過sys.exc_info()函數獲得的。code

traceback.print_exc()和traceback.format_exc()區別

format_exc()返回字符串,print_exc()直接給打印出來。
即traceback.print_exc()與print traceback.format_exc()效果是同樣的。
print_exc()還能夠接受file參數直接寫入到一個文件。好比
traceback.print_exc(file=open('tb.txt','w+'))
寫入到tb.txt文件中。orm


個人博客即將搬運同步至騰訊雲+社區,邀請你們一同入駐:https://cloud.tencent.com/dev...字符串

相關文章
相關標籤/搜索