天天看點

python3中try except_Python使用try except處理程式異常的三種常用方法分析

本文執行個體講述了Python使用try except處理程式異常的三種常用方法。分享給大家供大家參考,具體如下:

如果你在寫python程式時遇到異常後想進行如下處理的話,一般用try來處理異常,假設有下面的一段程式:

try:

語句1

語句2

.

.

語句N

except .........:

do something .......

但是你并不知道"語句1至語句N"在執行會出什麼樣的異常,但你還要做異常處理,且想把出現的異常列印出來,并不停止程式的運作,是以在"except ......"這句應怎樣來寫呢?

總結了一下3個方法:

方法一:捕獲所有異常

try:

a=b

b=c

except Exception,e:

print Exception,":",e

測試結果:

: name 'b' is not defined

方法二:采用traceback子產品檢視異常

#引入python中的traceback子產品,跟蹤錯誤

import traceback

try:

a=b

b=c

except:

traceback.print_exc()

方法三:采用sys子產品回溯最後的異常

#引入sys子產品

import sys

try:

a=b

b=c

except:

info=sys.exc_info()

print info[0],":",info[1]

運作結果:

: name 'b' is not defined

但是,如果你還想把這些異常儲存到一個日志檔案中,來分析這些異常,那麼請看下面的方法:

把 traceback.print_exc() 列印在螢幕上的資訊儲存到一個文本檔案中

import traceback

try:

a=b

b=c

except:

f=open("c:log.txt",'a')

traceback.print_exc(file=f)

f.flush()

f.close()

此時C槽根目錄下生成一個log.txt檔案,内容如下:

Traceback (most recent call last):

File "C:pyjb51PyDemosrcDemotest.py", line 3, in

a=b

NameError: name 'b' is not defined

希望本文所述對大家Python程式設計有所幫助。