最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年04月08日 11:49:30   作者:zhangphil  
這篇文章主要介紹了使用Python將Exception異常錯(cuò)誤堆棧信息寫(xiě)入日志文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

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

import traceback
import 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、從下往上找

如:

異常記錄:

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

import logging

def foo(s):
 return 10/int(s)
def bar(s)
 return foo(s)*2

def 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):
 pass
def foo(s):
 n = int(s)
 if n == 0:
  raise FooError("invalid value :%s"%s)
 return 10/n
foo('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è)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python程序語(yǔ)言快速上手教程

    Python程序語(yǔ)言快速上手教程

    本文是面向SEO人群的Python程序語(yǔ)言入門(mén)教程,也適用于其他沒(méi)有程序基礎(chǔ)但想學(xué)習(xí)些程序,以解決簡(jiǎn)單的實(shí)際應(yīng)用需求的人群。在后面會(huì)盡量用最基礎(chǔ)的角度來(lái)介紹這門(mén)語(yǔ)言
    2012-07-07
  • python使用PyGame繪制圖像并保存為圖片文件的方法

    python使用PyGame繪制圖像并保存為圖片文件的方法

    這篇文章主要介紹了python使用PyGame繪制圖像并保存為圖片文件的方法,涉及Python使用PyGame操作圖片的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • Python?Flask?+?Redis?程序練習(xí)

    Python?Flask?+?Redis?程序練習(xí)

    這篇文章主要給大家分享Python?Flask?+?Redis?程序的練習(xí),準(zhǔn)備一個(gè)Python文件,名字為?app.py?提供一個(gè)web服務(wù),可以訪問(wèn)地址,返回一個(gè)Hello?Container?World!并且記錄訪問(wèn)的次數(shù),下面來(lái)看看有趣的練習(xí)過(guò)程吧
    2022-01-01
  • Python虛擬機(jī)字節(jié)碼教程之控制流實(shí)現(xiàn)詳解

    Python虛擬機(jī)字節(jié)碼教程之控制流實(shí)現(xiàn)詳解

    在本篇文章當(dāng)中主要給大家分析 python 當(dāng)中與控制流有關(guān)的字節(jié)碼,通過(guò)對(duì)這部分字節(jié)碼的了解,我們可以更加深入了解 python 字節(jié)碼的執(zhí)行過(guò)程和控制流實(shí)現(xiàn)原理
    2023-04-04
  • python3學(xué)生名片管理v2.0版

    python3學(xué)生名片管理v2.0版

    這篇文章主要為大家詳細(xì)介紹了python3學(xué)生名片管理v2.0版,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 有關(guān)wxpython pyqt內(nèi)存占用問(wèn)題分析

    有關(guān)wxpython pyqt內(nèi)存占用問(wèn)題分析

    一直覺(jué)得wxpython占用內(nèi)存比較多,在工作中寫(xiě)的一些小程序應(yīng)用,一對(duì)比其它的小程序,發(fā)現(xiàn)內(nèi)存相差確實(shí)有點(diǎn)大
    2014-06-06
  • Python發(fā)送email的3種方法

    Python發(fā)送email的3種方法

    這篇文章主要介紹了Python發(fā)送email的3種方法,本文講解了使用登錄郵件服務(wù)器方法、調(diào)用sendmail命令、使用smtp服務(wù)來(lái)發(fā)送三種方法,需要的朋友可以參考下
    2015-04-04
  • 詳解Python的迭代器、生成器以及相關(guān)的itertools包

    詳解Python的迭代器、生成器以及相關(guān)的itertools包

    這篇文章主要介紹了詳解Python的迭代器、生成器以及相關(guān)的itertools包,Iterators、Generators是Python的高級(jí)特性,亦是Python學(xué)習(xí)當(dāng)中必會(huì)的基本知識(shí),需要的朋友可以參考下
    2015-04-04
  • python實(shí)現(xiàn)flappy bird小游戲

    python實(shí)現(xiàn)flappy bird小游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)flappy bird小游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • python顯示生日是星期幾的方法

    python顯示生日是星期幾的方法

    這篇文章主要介紹了python顯示生日是星期幾的方法,涉及Python使用date模塊操作日期的技巧,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

湖口县| 卢氏县| 新竹市| 德清县| 临西县| 陕西省| 铜梁县| 呼和浩特市| 清苑县| 黄石市| 南丹县| 青海省| 齐河县| 济宁市| 陵水| 乌拉特中旗| 慈利县| 嘉峪关市| 德令哈市| 浪卡子县| 都昌县| 边坝县| 江孜县| 桂东县| 天气| 文成县| 法库县| 广宗县| 永仁县| 龙山县| 尚志市| 和田县| 上思县| 河津市| 井研县| 江源县| 北海市| 修水县| 松阳县| 普定县| 丰台区|