標籤:列印 返回 int class encoding traceback orm bin 使用
#!/usr/bin/env python# -*- coding:utf-8 -*- # author:love_cat# 異常處理在python中已經屢見不鮮了,我們不僅可以處理異常,也可以將異常列印出來.try: print(a) # 顯然a沒有被定義except Exception as e: print(e)# 程式的輸出結果如下‘‘‘name ‘a‘ is not defined‘‘‘# 但僅僅如此,我們卻不知道程式在什麼地方報的錯# 當我們不使用try語句時,解譯器會給我們報出很詳細的錯誤,但此時程式也崩潰了# 如何在保證程式不崩潰的前提下,擷取詳細的錯誤資訊呢?# 這時候,可以使用traceback模組下的方法import tracebacktry: print(a) # a依舊沒有被定義except Exception as e: traceback.print_exc()print(‘古明地盆‘)# 程式輸出結果如下‘‘‘Traceback (most recent call last): File "F:/satori/python--traceback/異常處理.py", line 22, in <module> print(a) # a依舊沒有被定義NameError: name ‘a‘ is not defined古明地盆‘‘‘# 可以看出來這和程式崩潰時,解譯器報出的錯誤是一致的,但我們下面的字串還是被列印了出來# 除了traceback.print_exc()之外,還可以使用traceback.format_exc()# 區別是traceback.print_exc()報出的錯誤的形式跟程式崩潰時一模一樣,連字型顏色也是紅色,咋一看會真的以為程式報錯# 但traceback.format_exc()則是以字串的形式返回,但需要加上printtry: print(a) # a依舊沒有被定義except Exception as e: print(traceback.format_exc())# 程式輸出結果如下‘‘‘Traceback (most recent call last): File "F:/satori/python--traceback/異常處理.py", line 39, in <module> print(a) # a依舊沒有被定義NameError: name ‘a‘ is not defined‘‘‘# 雖然看起來和上面沒有區別,但後者是以字串返回的,沒有紅紅的字型。# 此外traceback.print_exc()還可以將錯誤資訊寫到檔案當中try: print(a) # a依舊沒有被定義except Exception as e: traceback.print_exc(file=open(‘traceback.txt‘,‘w‘,encoding=‘utf-8‘))# 可以看到新出現了traceback.txt檔案,開啟檔案可以看到如下資訊‘‘‘Traceback (most recent call last): File "F:/satori/python--traceback/異常處理.py", line 52, in <module> print(a) # a依舊沒有被定義NameError: name ‘a‘ is not defined‘‘‘
python--traceback模組