av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

使用Python將Exception異常錯(cuò)誤堆棧信息寫(xiě)入日志文件

瀏覽:4日期:2022-07-30 17:10:35

假設(shè)需要把發(fā)生異常錯(cuò)誤的信息寫(xiě)入到log.txt日志文件中去:

import tracebackimport logging logging.basicConfig(filename=’log.txt’, level=logging.DEBUG, format=’%(asctime)s - %(levelname)s - %(message)s’) try: raise Exception(’發(fā)生異常錯(cuò)誤信息’)except: #方案一,自己定義一個(gè)文件,自己把錯(cuò)誤堆棧信息寫(xiě)入文件。 #errorFile = open(’log.txt’, ’a’) #errorFile.write(traceback.format_exc()) #errorFile.close() #方案二,使用Python標(biāo)準(zhǔn)日志管理維護(hù)工具。 logging.debug(traceback.format_exc())

補(bǔ)充知識(shí):Python---異常處理、調(diào)用棧、異常記錄、拋出錯(cuò)誤

異常處理:

在python中,內(nèi)置了一套錯(cuò)誤處理機(jī)制:try:...except:...finally

語(yǔ)法:

try:可能出現(xiàn)異常語(yǔ)句except 錯(cuò)誤類型1 as e:異常處理except 錯(cuò)誤類型2 as e:異常處理2...finally:無(wú)論是否出錯(cuò),都會(huì)執(zhí)行的語(yǔ)句

PS:python的錯(cuò)誤也是類,所有錯(cuò)誤的類都繼承自BaseException。

所以使用except時(shí)需注意,不但會(huì)捕獲該類型的錯(cuò)誤,還會(huì)將其子類錯(cuò)誤一網(wǎng)打盡

調(diào)用棧:

若異常沒(méi)有被捕獲,則會(huì)一直往上拋,最后拋給解釋器,解釋器打印錯(cuò)誤的堆棧信息,然后退出。

因此,查找錯(cuò)誤的時(shí)候:

1、先看錯(cuò)誤類型

2、從下往上找

如:

使用Python將Exception異常錯(cuò)誤堆棧信息寫(xiě)入日志文件

異常記錄:

如果只使用異常捕獲,結(jié)果只會(huì)打印錯(cuò)誤類型,不會(huì)打印錯(cuò)誤堆棧信息。如果不使用異常捕獲,python解釋器會(huì)打印錯(cuò)誤類型及錯(cuò)誤堆棧信息,但是程序也被結(jié)束了。使用異常記錄就可以把錯(cuò)誤類型和錯(cuò)誤堆棧信息都打印出來(lái),而且程序可以繼續(xù)執(zhí)行。

import loggingdef foo(s): return 10/int(s)def bar(s) return foo(s)*2def mian(): try: bar(’0’) except Exception as e: logging.exception(e)main()print('END')

拋出錯(cuò)誤:

因?yàn)殄e(cuò)誤是class,捕獲一個(gè)錯(cuò)誤就是捕獲到該class的一個(gè)實(shí)例,因此,錯(cuò)誤并不是憑空產(chǎn)生的,而是有意創(chuàng)建并拋出的,pyhton的內(nèi)置函數(shù)會(huì)拋出很多類型的錯(cuò)誤,我們自己編寫(xiě)的函數(shù)也可以拋出錯(cuò)誤。

如果要拋出錯(cuò)誤,首先根據(jù)需要,可以定義一個(gè)錯(cuò)誤的class,選擇好繼承關(guān)系,然后,用raise語(yǔ)句拋出一個(gè)錯(cuò)誤的實(shí)例。

class FooError(valueError): passdef foo(s): n = int(s) if n == 0: raise FooError('invalid value :%s'%s) return 10/nfoo(’0’)

PS:只有在必要的時(shí)候才定義我們自己的錯(cuò)誤類型,如果可以選擇python已有的內(nèi)置的錯(cuò)誤類型,盡量使用python內(nèi)置的錯(cuò)誤類型。

常見(jiàn)的錯(cuò)誤類型

- AttributeError 試圖訪問(wèn)一個(gè)對(duì)象沒(méi)有的屬性- IOError 輸入/輸出異常 無(wú)法打開(kāi)文件- IndentationError 語(yǔ)法錯(cuò)誤,代碼沒(méi)有對(duì)齊- keyError 訪問(wèn)的key字典中不存在- NameError 使用一個(gè)還未賦值的對(duì)象的變量- TypeError 傳入對(duì)象類型與要求不合法- ValueError 傳入一個(gè)調(diào)用者不期望的值

以上這篇使用Python將Exception異常錯(cuò)誤堆棧信息寫(xiě)入日志文件就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 九九九久久国产免费 | 欧美激情国产日韩精品一区18 | 免费一区二区在线观看 | 美女一区| 精精国产xxxx视频在线播放7 | 国产激情小视频 | 日韩欧美专区 | 国产一区欧美一区 | 亚洲一区 中文字幕 | 亚洲国产精品久久人人爱 | 毛片视频网址 | aaa大片免费观看 | 欧美日韩亚洲国产综合 | 久久亚洲一区 | 在线观看成年视频 | 91国自产| 91大神xh98xh系列全部 | 亚洲精品888 | 国产高潮av | 久久久久久91 | xnxx 日本免费| 欧美午夜精品 | 黄色视频a级毛片 | 狠狠av | 最新中文字幕第一页视频 | 国产福利在线 | 免费观看一级毛片视频 | 精品一二区 | 国产一区二区三区 | 中文字幕成人av | 黄色大全免费看 | 亚洲精品国产成人 | 日韩在线h| 欧美日韩一卡二卡 | 亚洲精品自在在线观看 | 国产a区| 成人在线视频免费看 | 国产人成在线观看 | 中文字幕一区二区三区在线观看 | 天堂一区二区三区 | 国产一区二区视频在线观看 |