1. 程式人生 > >python中try except處理程式異常的三種常用方法

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

轉載自:http://www.pythontab.com/html/2013/pythonjichu_0204/210.html

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

1 2 3 4 5 6 7 8 try: 語句1 語句2 . . 語句N except .........: do something .......

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

總結了一下3個方法

方法一:捕獲所有異常

1 2 3 4 5 try:   a=b   b=c   except Exception,e:   print Exception,":",e

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

1 2 3 4 5 6 7 #引入python中的traceback模組,跟蹤錯誤 import traceback   try:   a=b   b=c   except:   traceback.print_exc()

方法三:採用sys模組回溯最後的異常

1 2 3 4 5 6 7 8 #引入sys模組 import sys   try:   a=b   b=c   except:   info=sys.exc_info()   print info[0],":",info[1]

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

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

1 2 3 4 5 6 7 8 9 import traceback try:   a=b   b=c   except:   f=open("c:log.txt"
,'a')   traceback.print_exc(file=f)   f.flush()   f.close()