1. 程式人生 > >錯誤堆疊資訊記錄錯誤日誌

錯誤堆疊資訊記錄錯誤日誌

前言

任何程式碼執行前都需要考慮程式碼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 0
View Code

在try 基礎上引入traceback

程式碼二

import traceback


def f1():
    result = 123
    int('asdf')                 #故意設定一個錯誤的程式碼源
    return result

def run():
    try:
        ret 
= f1() print(ret) except Exception as e: print(traceback.format_exc()) run()
View Code

錯誤資訊

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(
'asdf') #故意設定一個錯誤的程式碼源 ValueError: invalid literal for int() with base 10: 'asdf' 注:不僅提示錯誤型別,還提供錯誤的程式碼位置
View Code

總結

python 程式碼從上而下執行,有一行出錯則程式碼執行中斷,py檔案退出狀態為異常1。當設定try 後即使出現錯誤請況,後面程式碼還會執行,錯誤程式碼可以正常打印出來,退出狀態為正常的0。

引入 traceback 後錯誤的資訊提供的更詳細,且錯誤資訊為字串可以直接存入變數以便寫入錯誤日誌。