python traceback使用 異常的獲取與處理

1、traceback.print_exc()
2瑞佩、traceback.format_exc()
3施流、traceback.print_exception()

簡單說下這三個方法是做什么用的:

1垦缅、print_exc():是對異常棧輸出
2自赔、format_exc():是把異常棧以字符串的形式返回氧猬,print(traceback.format_exc()) 就相當于traceback.print_exc()
3背犯、print_exception():traceback.print_exc()實現方式就是traceback.print_exception(sys.exc_info()),可以點sys.exc_info()進去看看實現

測試代碼如下:

def func(a, b):
    return a / b


if __name__ == '__main__':
    import sys
    import time
    import traceback

    try:
        func(1, 0)
    except Exception as e:
        print('***', type(e), e, '***')
        time.sleep(2)

        print("***traceback.print_exc():*** ")
        time.sleep(1)
        traceback.print_exc()
        time.sleep(2)

        print("***traceback.format_exc():*** ")
        time.sleep(1)
        print(traceback.format_exc())
        time.sleep(2)

        print("***traceback.print_exception():*** ")
        time.sleep(1)
        traceback.print_exception(*sys.exc_info())

運行結果:

*** <class 'ZeroDivisionError'> division by zero ***


***traceback.print_exc():*** 
Traceback (most recent call last):
  File "E:/HttpRunnerManager-jh/ApiManager/tests.py", line 42, in <module>
    func(1, 0)
  File "E:/HttpRunnerManager-jh/ApiManager/tests.py", line 33, in func
    return a / b
ZeroDivisionError: division by zero


***traceback.format_exc():*** 
Traceback (most recent call last):
  File "E:/HttpRunnerManager-jh/ApiManager/tests.py", line 42, in <module>
    func(1, 0)
  File "E:/HttpRunnerManager-jh/ApiManager/tests.py", line 33, in func
    return a / b
ZeroDivisionError: division by zero


***traceback.print_exception():*** 
Traceback (most recent call last):
  File "E:/HttpRunnerManager-jh/ApiManager/tests.py", line 42, in <module>
    func(1, 0)
  File "E:/HttpRunnerManager-jh/ApiManager/tests.py", line 33, in func
    return a / b
ZeroDivisionError: division by zero

可以看出盅抚,三種方式打印結果是一樣的媳板。在開發(fā)時,做調試是很方便的泉哈。也可以把這種異常棧寫入日志蛉幸。

logging.exception(ex)

# 指名輸出棧蹤跡, logging.exception的內部也是包了一層此做法
logging.error(ex, exc_info=1) 

# 更加嚴重的錯誤級別 
logging.critical(ex, exc_info=1) 

# 我直接copy的,未嘗試丛晦。有時間會試下的

python 還有一個模塊叫cgitb奕纫,輸出的error非常詳情。

    try:
        func(1, 0)
    except Exception as e:
        import cgitb
        cgitb.enable(format='text')
        func(1, 0)

參考:
https://blog.csdn.net/lengxingxing_/article/details/56317838

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末烫沙,一起剝皮案震驚了整個濱河市匹层,隨后出現的幾起案子,更是在濱河造成了極大的恐慌锌蓄,老刑警劉巖升筏,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異瘸爽,居然都是意外死亡您访,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門剪决,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灵汪,“玉大人,你說我怎么就攤上這事柑潦∠硌裕” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵渗鬼,是天一觀的道長览露。 經常有香客問我,道長譬胎,這世上最難降的妖魔是什么差牛? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮银择,結果婚禮上多糠,老公的妹妹穿的比我還像新娘。我一直安慰自己浩考,他們只是感情好夹孔,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般搭伤。 火紅的嫁衣襯著肌膚如雪只怎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天怜俐,我揣著相機與錄音身堡,去河邊找鬼。 笑死拍鲤,一個胖子當著我的面吹牛贴谎,可吹牛的內容都是我干的。 我是一名探鬼主播季稳,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼擅这,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了景鼠?” 一聲冷哼從身側響起仲翎,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铛漓,沒想到半個月后溯香,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡浓恶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年玫坛,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片问顷。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡昂秃,死狀恐怖禀梳,靈堂內的尸體忽然破棺而出杜窄,到底是詐尸還是另有隱情,我是刑警寧澤算途,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布塞耕,位于F島的核電站,受9級特大地震影響嘴瓤,放射性物質發(fā)生泄漏扫外。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一廓脆、第九天 我趴在偏房一處隱蔽的房頂上張望筛谚。 院中可真熱鬧,春花似錦停忿、人聲如沸驾讲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吮铭。三九已至时迫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谓晌,已是汗流浹背掠拳。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纸肉,地道東北人溺欧。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像柏肪,于是被迫代替她去往敵國和親胧奔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內容

  • Python 面向對象Python從設計之初就已經是一門面向對象的語言预吆,正因為如此龙填,在Python中創(chuàng)建一個類和對...
    順毛閱讀 4,218評論 4 16
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,798評論 0 38
  • 轉載自:JmilkFan_范桂颶:http://blog.csdn.net/jmilk 異常 異常即非正常狀態(tài),在...
    ccq_inori閱讀 3,713評論 0 1
  • 草沒有黃 花兒沒有謝 綠葉也還沒有與枝椏分別 但是拐叉,別離啊 來的比草忙岩遗,比花兒急,比葉子的離開更加猝不及防 想和你...
    墨言0閱讀 565評論 0 2
  • 我們之間,終成故事 希望你走的越遠就有更好的風景蔬芥,希望一別兩寬梆靖,各生歡喜。 Z姑娘和先生L先生的相識像大多數平常的...
    xyz姑娘閱讀 321評論 1 0