Python 輸出詳細(xì)的異常信息(traceback)方式
問題描述
為了程序的正常運(yùn)行,進(jìn)行異常處理是有必要的,甚至于有時候,我們會主動的拋出異常,然后讓程序進(jìn)行異常捕獲,再進(jìn)行進(jìn)一步的處理。但是,在開發(fā)的程序相對較大的過程中,我們不能一昧的進(jìn)行try....except。而是要弄清楚到底拋出的是什么異常,同時,對于某些未知的異常,我們應(yīng)該清楚的定位到到底是哪一行程序拋出的異常,針對這種情況,traceback庫能極大的幫助我們。
解決方法
代碼只需一行,即 print(traceback.format_exc()) 即可,這樣即可打印詳細(xì)的信息,這個詳細(xì)信息比你捕捉完異常打印args詳細(xì)多了,詳細(xì)到具體第幾行,如果你在一個大型程序里,需要定位錯誤,那么,traceback是十分好用的:
可以清楚的看到 ‘=’ 號上方和下方打印的異常詳細(xì)程度是不同的。
我們還可以通過traceback,獲得異常的名稱,用于根據(jù)異常名稱進(jìn)行異常捕獲,例如,我們直接運(yùn)行一段程序,并沒有打印出來異常的名字,這樣我們無法通過異常名對異常進(jìn)行捕獲,因此,我們可以通過traceback獲得異常名:
如上圖,我們無法獲得異常名,下圖展示traceback獲得異常名:
從上圖我們可以看到,我們無法通過args獲取異常名,但是可以通過traceback獲取
補(bǔ)充知識:python 輸出完成異常信息
如下所示:
import traceback try: 1/0exception: traceback.print_exc()
traceback.print_exc() 直接打印異常
traceback.format_exc()返回字符串
print_exc() 還可以接受file參數(shù)直接寫入到一個文件
還可以將信息寫入到文件
traceback.print_exc(file=open(‘error.txt’,’a+’))
以上這篇Python 輸出詳細(xì)的異常信息(traceback)方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP.NET Core自定義中間件的方式詳解2. 用xslt+css讓RSS顯示的跟網(wǎng)頁一樣漂亮3. 《CSS3實(shí)戰(zhàn)》筆記--漸變設(shè)計(一)4. CSS3實(shí)現(xiàn)動態(tài)翻牌效果 仿百度貼吧3D翻牌一次動畫特效5. 移動端HTML5實(shí)現(xiàn)拍照功能的兩種方法6. 讓chatgpt將html中的圖片轉(zhuǎn)為base64方法示例7. 教你JS更簡單的獲取表單中數(shù)據(jù)(formdata)8. html5手機(jī)觸屏touch事件介紹9. ASP.NET MVC把數(shù)據(jù)庫中枚舉項的數(shù)字轉(zhuǎn)換成文字10. 測試模式 - XSL教程 - 5
