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

使用Python將Exception異常錯誤堆棧信息寫入日志文件

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

假設需要把發(fā)生異常錯誤的信息寫入到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ā)生異常錯誤信息')
except:
 #方案一,自己定義一個文件,自己把錯誤堆棧信息寫入文件。
 #errorFile = open('log.txt', 'a')
 #errorFile.write(traceback.format_exc())
 #errorFile.close()
 
 #方案二,使用Python標準日志管理維護工具。
 logging.debug(traceback.format_exc())

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

異常處理:

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

語法:

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

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

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

調(diào)用棧:

若異常沒有被捕獲,則會一直往上拋,最后拋給解釋器,解釋器打印錯誤的堆棧信息,然后退出。

因此,查找錯誤的時候:

1、先看錯誤類型

2、從下往上找

如:

異常記錄:

如果只使用異常捕獲,結果只會打印錯誤類型,不會打印錯誤堆棧信息。如果不使用異常捕獲,python解釋器會打印錯誤類型及錯誤堆棧信息,但是程序也被結束了。使用異常記錄就可以把錯誤類型和錯誤堆棧信息都打印出來,而且程序可以繼續(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") 

拋出錯誤:

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

如果要拋出錯誤,首先根據(jù)需要,可以定義一個錯誤的class,選擇好繼承關系,然后,用raise語句拋出一個錯誤的實例。

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:只有在必要的時候才定義我們自己的錯誤類型,如果可以選擇python已有的內(nèi)置的錯誤類型,盡量使用python內(nèi)置的錯誤類型。

常見的錯誤類型

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

以上這篇使用Python將Exception異常錯誤堆棧信息寫入日志文件就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python程序語言快速上手教程

    Python程序語言快速上手教程

    本文是面向SEO人群的Python程序語言入門教程,也適用于其他沒有程序基礎但想學習些程序,以解決簡單的實際應用需求的人群。在后面會盡量用最基礎的角度來介紹這門語言
    2012-07-07
  • python使用PyGame繪制圖像并保存為圖片文件的方法

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

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

    Python?Flask?+?Redis?程序練習

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

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

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

    python3學生名片管理v2.0版

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

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

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

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

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

    詳解Python的迭代器、生成器以及相關的itertools包

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

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

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

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

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

最新評論

青州市| 枝江市| 铅山县| 日照市| 宜章县| 罗源县| 天长市| 海安县| 浦城县| 潜山县| 化德县| 阿克苏市| 容城县| 高清| 怀集县| 余江县| 晋州市| 什邡市| 嵊州市| 杂多县| 辉县市| 通州区| 巴东县| 晋州市| 菏泽市| 宁强县| 兴城市| 内江市| 浮山县| 铜陵市| 石棉县| 酉阳| 江山市| 广汉市| 平泉县| 孝感市| 吴旗县| 二连浩特市| 康定县| 古交市| 右玉县|