本文執行個體講述了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程式設計有所幫助。