Python笔记——异常处理

Python笔记——异常处理

捕获异常

 

try:

   <语句>

except <异常名1>:

   <语句>

except <异常名2>:

   <语句>

else:

   <语句>

 

 

另一种形式,不包含exceptelse语句

 

try:

  <语句>

finally:

  <语句>

 

eg.

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)  #将打印出异常信息

 #自定义异常 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")

以上两段程序运行结果:

Python笔记——异常处理_第1张图片

你可能感兴趣的:(exception,python,脚本,Class)