- 如果你在寫python程式時遇到異常後想進行如下處理的話,一般用try來處理異常,假設有下面的一段程式:
- try:
- 語句1
- 語句2
- .
- 語句N
- except .........:
- print .......
- 但是你並不知道"語句1至語句N"在執行會出什麼樣的異常,但你還要做異常處理,且想把出現的異常列印出來,並不停止程式的執行,所以在"except ......"這句應怎樣來寫呢?
- 總結了一下至少3個方法:
- 方法一:捕獲所有異常
- try:
- a=b
- b=c
- except Exception,e:
- print Exception,":",e
- 方法二:採用traceback模組檢視異常
- import traceback
- try:
- a=b
- b=c
- except:
- traceback.print_exc()
- 方法三:採用sys模組回溯最後的異常
- import sys
- try:
- a=b
- b=c
- except:
- info=sys.exc_info()
- print info[0],":",info[1]
- 但是,如果你還想把這些異常儲存到一個日誌檔案中,來分析這些異常,那麼請看下面的方法:
- 把 traceback.print_exc() 列印在螢幕上的資訊儲存到一個文字檔案中
- try:
- a=b
- b=c
- except:
- f=open("c:log.txt",`a`)
- traceback.print_exc(file=f)
- f.flush()
- f.close()