錯誤堆疊資訊記錄錯誤日誌
阿新 • • 發佈:2019-01-12
前言
任何程式碼執行前都需要考慮程式碼bug,當出現錯誤資訊時需要展示其錯誤資訊
通過try 方式
程式碼一
def f1(): result = 123 int('asdf') #故意設定一個錯誤的程式碼源 return result def run(): try: ret = f1() print(ret) except Exception as e: print(e) run()View Code
錯誤資訊
invalid literal for int() with base 10: 'asdf' Process finished with exit code 0View Code
在try 基礎上引入traceback
程式碼二
import traceback def f1(): result = 123 int('asdf') #故意設定一個錯誤的程式碼源 return result def run(): try: retView Code= f1() print(ret) except Exception as e: print(traceback.format_exc()) run()
錯誤資訊
Traceback (most recent call last): File "E:/cmdb/auto_client_fang/test.py", line 12, in run ret = f1() File "E:/cmdb/auto_client_fang/test.py", line 7, in f1 int(View Code'asdf') #故意設定一個錯誤的程式碼源 ValueError: invalid literal for int() with base 10: 'asdf' 注:不僅提示錯誤型別,還提供錯誤的程式碼位置
總結
python 程式碼從上而下執行,有一行出錯則程式碼執行中斷,py檔案退出狀態為異常1。當設定try 後即使出現錯誤請況,後面程式碼還會執行,錯誤程式碼可以正常打印出來,退出狀態為正常的0。
引入 traceback 後錯誤的資訊提供的更詳細,且錯誤資訊為字串可以直接存入變數以便寫入錯誤日誌。