python中用於處理異常棧的模塊是traceback模塊,它提供了print_exception、format_exception等輸出異常棧等經常使用的工具函數。python
try: 1/0 except Exception,e: print e
輸出結果是函數
integer division or modulo by zero
只知道是報了這個錯,可是殊不知道在哪一個文件哪一個函數哪一行報的錯。工具
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
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...字符串