python中try except處理程式異常的三種常用方法

pythontab發表於2013-02-04

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

try: 
    語句1
    語句2
    . 
    .
    語句N 
except .........: 
    do something .......

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

總結了一下3個方法

方法一:捕獲所有異常

try:   
    a=b   
    b=c   
except Exception,e:   
    print Exception,":",e   

方法二:採用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]  

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

把 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()


相關文章