Python異常捕獲以及簡(jiǎn)單錯(cuò)誤日志生成方式
Python異常捕獲及簡(jiǎn)單錯(cuò)誤日志生成
最近,本人在做一個(gè)預(yù)測(cè)項(xiàng)目。我的工作主要是從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)分析、進(jìn)行數(shù)值預(yù)測(cè)、將預(yù)測(cè)值存儲(chǔ)數(shù)據(jù)庫(kù)、程序打包exe等。
在實(shí)際的exe文件運(yùn)行過程中可能會(huì)因?yàn)楦鞣N原因?qū)е鲁绦蜿P(guān)閉,無法了解錯(cuò)誤原因。
為了比較直觀地了解錯(cuò)誤原因,本人在程序中加入了異常捕獲模塊并自動(dòng)生成錯(cuò)誤日志。
下面,我將用一個(gè)例子來實(shí)現(xiàn)上述功能的實(shí)現(xiàn)。
例子主要實(shí)現(xiàn)數(shù)值相減,如果輸入的不是數(shù)字,那么程序是會(huì)報(bào)錯(cuò)的,那么此時(shí)應(yīng)該會(huì)在程序路徑下生成一個(gè)txt格式的錯(cuò)誤日志。
話不多說,直接上代碼
import os if __name__ == '__main__': try: a = 1 print('請(qǐng)輸入一個(gè)數(shù)字') b = input() c = a-int(b) print('%d-%d=%d' % (a, int(b), c)) except Exception as err: print("err %s: " % err) rootDir = os.path.split(os.path.realpath(__file__))[0] blogpath = os.path.join(rootDir, 'test1.txt') f = open(blogpath, 'w+') f.writelines(repr(err)) f.close()
代碼無需使用任何第三方包,直接使用python常用的異常捕獲模塊try... except...finally來捕獲程序中的異常,然后使用txt文件保存錯(cuò)誤信息。
正常運(yùn)行下,結(jié)果如下:
程序錯(cuò)誤,會(huì)在對(duì)應(yīng)程序路徑下自動(dòng)生成錯(cuò)誤日志。
結(jié)果如下:
錯(cuò)誤日志生成效果如下:
此外,這里再介紹一種升級(jí)版,代碼如下:
import os import traceback if __name__ == '__main__': try: a = 1 print('請(qǐng)輸入一個(gè)數(shù)字') b = input() c = a-int(b) print('%d-%d=%d' % (a, int(b), c)) except Exception: print(traceback.format_exc()) rootDir = os.path.split(os.path.realpath(__file__))[0] blogpath = os.path.join(rootDir, 'test1.txt') f = open(blogpath, 'w+') f.writelines(str(traceback.format_exc())) f.close()
升級(jí)版生成的錯(cuò)誤日志如下:
從生成日志結(jié)果我們可以發(fā)現(xiàn)升級(jí)版的錯(cuò)誤可以定位到具體代碼行,而前者只能返回錯(cuò)誤類型。大家根據(jù)自己需求選擇吧。
總結(jié)
好了,這就Python異常捕獲和簡(jiǎn)單錯(cuò)誤日志生成啦。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
人工智能——K-Means聚類算法及Python實(shí)現(xiàn)
這篇文章主要介紹了人工智能——K-Means聚類算法及Python實(shí)現(xiàn),一個(gè)能夠找到我圈出的這?些點(diǎn)集的算法,就被稱為聚類算法,下面就來看看文章具體的介紹吧2022-01-01python使用gTTS實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音功能
gTTS(Google?Text-to-Speech),?這個(gè)庫(kù)是Google的Text-to-Speech?API的一個(gè)接口,提供了一種簡(jiǎn)單的方式來生成聽起來自然的語(yǔ)言,下面我們就來看看如何使用gTTS實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音功能吧2024-03-03python數(shù)據(jù)庫(kù)編程 Mysql實(shí)現(xiàn)通訊錄
這篇文章主要為大家詳細(xì)介紹了python數(shù)據(jù)庫(kù)編程,Mysql實(shí)現(xiàn)通訊錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03python讀寫數(shù)據(jù)讀寫csv文件(pandas用法)
這篇文章主要介紹了python讀寫數(shù)據(jù)讀寫csv文件(pandas用法),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12