python異常

TRY······EXCEPT   
python

這個語句主要是捕獲異常,在python中的運行過程主要是:出現異常時,python將中止try中的語句進行,就愛那個異常傳遞給except子句,尋找可匹配的except子句,若是找到,將作except 組下面的處理,而後處理完成後再將控制權交給try,進行處理。進行這樣反覆操做。以下:

ui

    try: 
        open('aaa.txt') 
    except IOError as e: 
        pass


 另外,TRY······EXCEPT 能夠加修飾語句,如:except Exception as var,若是出現異常將爲變量提供 raise語句異常類型的實例。異常處理程序能夠處理該值,並得到更多關於異常的信息。except 能夠指定多個異常代碼處理模塊,如:

    
spa

  try: 
            #do somethong 
 
  except  IOError  as e: 
 
            #處理I/O錯誤 
 
  except  TypeError  as e: 
 
            #處理類型錯誤 
 
  except  NameError  as e: 
 
            #處理名稱錯誤 
 
            error_log.write('An error  occeurred : %s \n ' % e)


另一種方式:     
code

   try: 
 
              #do somethong 
 
    except  (IOError,TypeError   NameError ) as e: 
 
              #處理錯誤 
 
              error_log.write('An error  occeurred : %s \n ' % e)


使用Exception能夠捕捉除了與程序退出相關異常以外的全部異常,如:
it

     try: 
              #do somethong 
     except  (IOError,TypeError   NameError ) as e: 
              #處理錯誤 
              error_log.write('An error  occeurred : %s \n ' % e)


 TRY······EXCEPT······ELSE

         try語句也支持else語句,可是else子句必須跟在最後一個except子句後面,若是try中的代碼未引起異常,則會執行else中的代碼。如:

io

    try: 
                f=open('foo.txt','r') 
    except  IOError  as  e: 
                error_log.write('An error  occeurred : %s \n ' % e) 
     else : 
                data=f.read() 
                f.close()


TRY······EXCEPT ······FINALLY
class

  f=open('foo.txt','r') 
 
        try: 
 
                #進行一些處理 
 
              
 
        finally: 
 
                data=f.close() 
 
                #不管發生什麼,都會關閉文件

 finally子句不是用於捕獲異常,而是用於提供一些代碼,不管出現什麼錯誤都會執行該代碼。若是出現異常,控制權首先交給 finally,而後執行完畢後,將從新引起的異常交給另外的異常處理程序。若是未出現異常,try子句的代碼完畢後,當即執行finally子句中的代 碼。
    自定義異常  
require

 class LengthRequiredException(Exception):   
 
        def __init__(self,length,minLength):   
 
            Exception.__init__(self)   
 
            self.length = length   
 
            self.minLength = minLength

    引起自定義的異常  
變量

l = [1,2,3,4,5]   
 
    minLength = 6   
 
    try:   
 
        raise LengthRequiredException(len(l),minLength)   
 
    except IndexError:   
 
        print("index out of bounds")   
 
    except LengthRequiredException as e:   
 
        print("Length not fit :length is %d required %d" %(e.length,e.minLength))   
 
    else:   
 
        print("no exception was raised")   
 
    finally:   
 
        print("finally will be execute")
相關文章
相關標籤/搜索