python 追蹤except資訊

2021-07-14 18:29:00 字數 1048 閱讀 1288

看下面這個函式

def test():

sum = 3/0

if __name__ == '__main__':

test()

除0肯定是不對的,會引發乙個except,內容如下:

file "e:\src\dongsheng\testpython\testtrace_back.py", line 23, in test()

file "e:\src\dongsheng\testpython\testtrace_back.py", line 19, in test

sum = 3/0

zerodivisionerror: integer division or modulo by zero

python  提供了traceback  ,可以完美的輸出except發生時的資訊,就和上面的內容一樣,而且可以輸入到指定的檔案之中,所以,不妨寫乙個裝飾器,修飾那些需要監督的函式,當他們發生異常時,記錄下有關異常的資訊。

#coding=utf-8

from functools import wraps

import traceback

def except_trace(filename):

def decorate(func):

@wraps(func)

try:

func(*args,**kwargs)

except:

fp = open(filename,'w')

traceback.print_exc(file=fp)

fp.close()

return decorate

@except_trace('1.txt')

def test():

sum = 3/0

if __name__ == '__main__':

test()

這一次,發生異常後,有關異常的資訊會輸入到1.txt檔案中,這個檔案中只包含異常的資訊,方便檢視。

Python中except用法和作用

python的except用來捕獲所有異常,因為python裡面的每次錯誤都會丟擲 乙個異常,所以每個程式的錯誤都被當作乙個執行時錯誤。以下是使用except的乙個例子 try foo opne file open被錯寫為opne except sys.exit could not open fil...

python中try及except使用

如下 try x she said surely.print x except exception print the wrong syntax.執行結果如下 a syntaxerror invalid syntax查了很多資料,了解到,異常的定義是 即使一條語句或表示式在語法上是正確的,當試圖執行...

python異常except語句用法與引發異常

話說用python這麼久了,居然沒搞明白except的用法,太不給力了。except 捕獲所有異常 except 異常名 捕獲指定異常 except 異常名1,異常名2 捕獲異常1或者異常2 except 異常名 資料 捕獲指定異常及其附加的資料 except 異常名1,異常名2 資料 捕獲異常名1...