08
2013-04

python 异常处理


转自:http://blog.csdn.net/wklken/article/details/6315482

2013-04-08 16:36:40


Python笔记——异常处理
捕获异常
 
try:
   <语句>
except <异常名1>:
   <语句>
except <异常名2>:
   <语句>
else:
   <语句>
 
另一种形式,不包含except和else语句
 
try:
  <语句>
finally:
  <语句>
eg.
[python] view plaincopyprint?
l = [1,2,3,4]  
  
try:  
    print(l[5])  
except:  
          print("error")  
else:  
          print("no error")  
finally:  
          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?
#自定义异常  
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")  

One Response


    还没有评论!
1  

Leave your comment

请留下您的姓名(*)

请输入正确的邮箱地址(*)

请输入你的评论(*)


感谢开源 © 2016. All rights reserved.&3Q Open Source&^_^赣ICP备15012863号-1^_^
乐于分享共同进步 KreativeThemes