python的异常种类
AttributeError 访问一个对象没有的属性 比如:foo.x 但是foo没有x属性 IOError 输入/输出异常 基本是无法打开文件 ImportError 无法映入模块或包 路径或者名称错误 IndentationError 无法错误(的子类) :代码没有正确对齐 IndexError 下表索引超出边界 比如李彪只有3个元素 却访问第五个 KeyError 访问字典不存在的键 KEYboardInterrupt Ctrl+c被按下 NameError 使用未被赋予对象的变量(即未定义) SyntaxError python代码非法,代码不能变异(一般是语法错误) TypeError 传入的对象类型与要求不符合 ValueError 传入一个调用者不期望的值(即使值得类型正确)
异常其他结构try....except
try: #主代码 pass except KeyError as e: #异常时执行代码 pass else: #主代码执行完成,执行该块 pass finally: #无论异常与否,最终执行(#注意返回时可变类型时,可能会被finally中的代码更改) pass
异常处理: 一种由语法上的错误引发的异常,另一种是逻辑上引发的错误 对于语法的:尽量在程序执行前改正 对于逻辑上的,尽量使用if来预防 对于逻辑上无法预知的,使用try...except...进行捕捉处理
Take a small step every day