16.异常处理机制:exception

来源:互联网 发布:access2003数据库教程 编辑:程序博客网 时间:2024/06/08 10:15

python常见异常总结:http://bbs.fishc.com/forum.php?mod=viewthread&tid=45814&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403

AssertError:断言assert语句失败AttributeError:尝试访问未知的/不存在的对象的方法IndentationError:缩进错误ImportError:导入模块失败SyntaxError:python的语法错误ZeroDivisionError:除零错误IndexError:索引超出序列的范围TypeError:不同类型直接运算KeyError:字典中查找一个不存在的关键字IOError:没有文件或目录MemoryError:内存溢出(可通过删除和释放对象解决)NameError:尝试访问一个不存在的变量KeyboardError:中断键(Ctrl+C)OSError:操作系统产生的异常(例如打开一个不存在的文件)OverflowError:数值运算超出最大限制RuntimeError:一般运行时出现的错误(递归超出最大迭代次数等)ReferenceError:试图访问一个已经被垃圾回收机制回收的对象ValueError:传入无效的参数FloatingPointError:浮点计算错误EOFError:用户输入文件末尾标志EOF(Ctrl+D)NotImplementedErrror:尚未实现的方法

检测并处理异常

语法:

try:    检测范围except Exception[as reason]:  #Exception异常类型  reason:异常原因    出现异常后处理异常的代码finally:    无论如何让都会被执行的代码

例:

【代码1try:    f = open('G:\\new.txt','w') #以w方式打开文件    f.write('I love you!')    1/0   #发生除以0异常    f.close()   #发生除以0异常后,直接跳过此句话except (IOError,ZeroDivisionError) as reason:  #捕获初零异常    print('文件出错误了!\n' + str(reason))  #打印错误原因文件出错误了!integer division or modulo by zero但是:并没有把'I love you!'写入'G:\\new.txt'文件,因为除零异常发生,直接跳过f.close()语句,因此缓冲区中的数据还没有写入文件,就被释放。【代码2】修改成带finally的代码try:    f = open('G:\\new.txt','w') #以w方式打开文件    f.write('I love you!')    1/0   #发生除以0错误except (IOError,ZeroDivisionError) as reason:  #捕获初零异常    print('文件出错误了!\n' + str(reason))  #打印错误原因finally:   #把必须要执行的代码放在finally之后    f.close() 文件出错误了!integer division or modulo by zero此时,把'I love you!'写入了'G:\\new.txt'文件
原创粉丝点击