1. 程式人生 > >python異常如何全面捕獲

python異常如何全面捕獲

    如果你在寫程式時遇到異常後想進行如下處理的話請參考我下面寫的對異常處理的方法:
假設有下面的一段程式:
try:
    語句1
    語句2
    .
    語句N
except .........:
    print .......
    但是你並不知道“語句1至語句N”在執行會出什麼樣的異常,但你還要做異常處理,且想把出現的異常打印出來,並不停止程式的執行,
所以在“except ......”這句應怎樣來寫呢?
至少3個方法:

方法一:捕獲所有異常

[python] view plain copy  print?
  1. try:  
  2.     a=b  
  3.     b=c  
  4. except
     Exception,ex:  
  5.     print Exception,":",ex  

方法二:採用traceback模組檢視異常
[python] view plain copy  print?
  1. import traceback  
  2. try:  
  3.     a=b  
  4.     b=c  
  5. except:  
  6.     traceback.print_exc()  

方法三:採用sys模組回溯最後的異常
[python] view plain copy  print?
  1. import sys  
  2. try:  
  3.     a=b  
  4.     b=c  
  5. except:  
  6.     info=sys.exc_info()  
  7.     print info[0],":",info[1]  

但是,如果你還想把這些異常儲存到一個日誌檔案中,來分析這些異常,那麼請看下面的方法:
把 traceback.print_exc() 列印在螢幕上的資訊儲存到一個文字檔案中
[python] view plain copy  print?
  1. try:  
  2.     a=b  
  3.     b=c  
  4. except:  
  5.     f=open("c:log.txt",'a')  
  6.     traceback.print_exc(file=f)  
  7.     f.flush()  
  8.     f.close()