python Execept處理方式

一個人的場域發表於2016-12-22

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

try:
    do something
except ..:
    deal exception


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

方法一:捕獲所有異常

try:
    do something

except Except, e  # 同python 2.6後的except Except as e,將異常資料放至物件e中
    do something # print e
    


方法二:採用traceback模組檢視異常

import traceback

try:
    do something
except:
    traceback.print_exc()  #同 print traceback.format_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()


相關文章