python中try except處理程式異常的三種常用方法
阿新 • • 發佈:2019-02-11
轉載自: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()
|