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")
相关文章
相关标签/搜索