Python 輸出詳細(xì)的異常信息(traceback)方式
問題描述
為了程序的正常運(yùn)行,進(jìn)行異常處理是有必要的,甚至于有時(shí)候,我們會(huì)主動(dòng)的拋出異常,然后讓程序進(jìn)行異常捕獲,再進(jìn)行進(jìn)一步的處理。但是,在開發(fā)的程序相對較大的過程中,我們不能一昧的進(jìn)行try....except。而是要弄清楚到底拋出的是什么異常,同時(shí),對于某些未知的異常,我們應(yīng)該清楚的定位到到底是哪一行程序拋出的異常,針對這種情況,traceback庫能極大的幫助我們。
解決方法
代碼只需一行,即 print(traceback.format_exc()) 即可,這樣即可打印詳細(xì)的信息,這個(gè)詳細(xì)信息比你捕捉完異常打印args詳細(xì)多了,詳細(xì)到具體第幾行,如果你在一個(gè)大型程序里,需要定位錯(cuò)誤,那么,traceback是十分好用的:

可以清楚的看到 ‘=' 號上方和下方打印的異常詳細(xì)程度是不同的。
我們還可以通過traceback,獲得異常的名稱,用于根據(jù)異常名稱進(jìn)行異常捕獲,例如,我們直接運(yùn)行一段程序,并沒有打印出來異常的名字,這樣我們無法通過異常名對異常進(jìn)行捕獲,因此,我們可以通過traceback獲得異常名:

如上圖,我們無法獲得異常名,下圖展示traceback獲得異常名:

從上圖我們可以看到,我們無法通過args獲取異常名,但是可以通過traceback獲取
補(bǔ)充知識:python 輸出完成異常信息
如下所示:
import traceback try: 1/0 exception: traceback.print_exc()
traceback.print_exc() 直接打印異常
traceback.format_exc()返回字符串
print_exc() 還可以接受file參數(shù)直接寫入到一個(gè)文件
還可以將信息寫入到文件
traceback.print_exc(file=open(‘error.txt','a+'))
以上這篇Python 輸出詳細(xì)的異常信息(traceback)方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)從SQL型數(shù)據(jù)庫讀寫dataframe型數(shù)據(jù)的方法【基于pandas】
這篇文章主要介紹了Python實(shí)現(xiàn)從SQL型數(shù)據(jù)庫讀寫dataframe型數(shù)據(jù)的方法,涉及Python基于pandas的數(shù)據(jù)庫讀寫相關(guān)操作技巧,需要的朋友可以參考下2019-03-03
對python的unittest架構(gòu)公共參數(shù)token提取方法詳解
今天小編就為大家分享一篇對python的unittest架構(gòu)公共參數(shù)token提取方法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
python 數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換的總結(jié)
這篇文章主要介紹了python 數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換的使用總結(jié),幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01
基于Python中capitalize()與title()的區(qū)別詳解
下面小編就為大家分享一篇基于Python中capitalize()與title()的區(qū)別詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
pytorch中獲取模型input/output shape實(shí)例
今天小編就為大家分享一篇pytorch中獲取模型input/output shape實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Python利用LyScript插件實(shí)現(xiàn)批量打開關(guān)閉進(jìn)程
LyScript是一款x64dbg主動(dòng)化操控插件,經(jīng)過Python操控X64dbg,完成了遠(yuǎn)程動(dòng)態(tài)調(diào)試,解決了逆向工作者剖析漏洞,尋覓指令片段,原生腳本不行強(qiáng)壯的問題。本文將利用LyScript插件實(shí)現(xiàn)批量打開關(guān)閉進(jìn)程,感興趣的可以了解一下2022-07-07
Ubuntu18.04中Python2.7與Python3.6環(huán)境切換
這篇文章主要為大家詳細(xì)介紹了Ubuntu18.04中Python2.7與Python3.6環(huán)境切換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
python通過floor函數(shù)舍棄小數(shù)位的方法
這篇文章主要介紹了python通過floor函數(shù)舍棄小數(shù)位的方法,實(shí)例分析了Python中floor函數(shù)的功能及使用技巧,需要的朋友可以參考下2015-03-03

