python-異常處理 traceback獲取詳細異常


直接來幾個簡單的栗子:

try:
100/0
except Exception as err:
print(err)
 
        

輸出結果:

division by zero

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

 

使用 traceback 模塊

import traceback  
try:  
    100/0  
except Exception as e:  
    traceback.print_exc()  

 

輸出結果:

Traceback (most recent call last):
File "D:/code/www/jiaoben/test/test1.py", line 3, in <module>
100/0
ZeroDivisionError: division by zero

 這樣就非常nice了,可以很清楚的看出哪個文件哪個函數哪一行報的錯.也方便調試。

 

traceback.print_exc()函數 是 traceback.print_exception()函數 的一個簡寫形式,而它們獲取異常相關的數據都是通過sys.exc_info()函數得到的。

 

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('test.txt','w+'))
寫入到test.txt文件中。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM