Python笔记——异常处理

来源:互联网 发布:互联网大数据公司排名 编辑:程序博客网 时间:2024/05/13 07:21

Python笔记——异常处理

捕获异常

 

try:

   <语句>

except <异常名1>:

   <语句>

except <异常名2>:

   <语句>

else:

   <语句>

 

 

另一种形式,不包含except和else语句

 

try:

  <语句>

finally:

  <语句>

 

eg.

[python] view plaincopyprint?
  1. l = [1,2,3,4]  
  2.   
  3. try:  
  4.     print(l[5])  
  5. except:  
  6.           print("error")  
  7. else:  
  8.           print("no error")  
  9. finally:  
  10.           print("finally")  

 

 

 

常见的异常:

AttributeError 调用不存在的方法引发的异常

EOFError 遇到文件末尾引发的异常

ImportError 导入模块出错引发的异常

IndexError 列表月越界引发的异常

IOError I/O操作引发的异常,如打开文件出错等

KeyError 使用字典中不存在的关键字引发的异常

NameError 使用不存在的变量名引发的异常

TabError 语句块缩进不正确引发的异常

ValueError 搜索列表中不存在值引发的异常

ZeroDivisionError 除数为零引发的异常

 

 

eg.

try:

  l[2]/0

except IndexError:

  print('IndexError')

except ZeroDivisionError:

  print('ZeroDivisionError')

else:

  print 'no error'

 

 

 

多重异常的处理

可以在try语句中嵌套另一个try语句

一旦发生异常,python匹配最近的except语句,

若是内部except能够处理该异常,则外围try语句不会捕获异常。

若是不能,或者忽略,外围try处理

 

引发异常

python中可以通过raise语句手工引发异常,并向异常传递数据

使用raise可以定义新的错误类型,以适应脚本的需要

 

格式:

raise 异常名

raise 类名(异常信息)

 

 

捕获时:

 except MyException as e:

      print(e)  #将打印出异常信息

 

[python] view plaincopyprint?
  1. #自定义异常  
  2. class LengthRequiredException(Exception):  
  3.     def __init__(self,length,minLength):  
  4.         Exception.__init__(self)  
  5.         self.length = length  
  6.         self.minLength = minLength  
  7.   
  8. #引发自定义的异常  
  9.   
  10.   
  11. l = [1,2,3,4,5]  
  12. minLength = 6  
  13. try:  
  14.     raise LengthRequiredException(len(l),minLength)  
  15. except IndexError:  
  16.     print("index out of bounds")  
  17. except LengthRequiredException as e:  
  18.     print("Length not fit :length is %d required %d" %(e.length,e.minLength))  
  19. else:  
  20.     print("no exception was raised")  
  21. finally:  
  22.     print("finally will be execute")  

以上两段程序运行结果:

分享到: 

原创粉丝点击