一)捕获异常
格式一:
try:
<语句>
except <异常1>:
<语句>
except <异常2>:
<语句>
else: 如果没有异常,则执行else块中的语句
<语句>
格式二:
try:
<语句>
finally:
<语句>
不管try语句块中是否发生异常,都将执行finally语句块。
二)处理异常:
AttributeError: 调用不存在的方法引发的异常
EOFError: 遇到文件末尾引发的异常
ImportError: 导入模块出错引发的异常
IndexError: 列表越界引发的异常
IOError: I/O 操作引发的异常,如打开文件出错等
KeyError:使用字典中不存在的关键字引发的异常
NameError:使用不存在的变量名引发的异常
TabError: 语句块缩进不正确引发的异常
ValueError: 搜索列表中不存在的值引发的异常
ZeroDivisionError: 除数为零引发的异常
except语句主要有以下几种用法:
except: 捕获所有异常
except <异常名>:
except <异常名1,异常名2>: 捕获异常名1或者异常名2
except <异常名>, <数据>: 捕获指定异常及附加的数据
except (异常名1,异常名2), <数据>: 捕获异常名1或者异常名2及异常的附加数据
3)多重异常处理
如果except能够处理该异常,则外围的try语句将不会捕获异常。如果except忽略该异常,则异常将被外围try语句捕获。
二)引发异常:
在python中可以通过使用raise语句手工引发异常。在类中也可以使用raise引发异常,并向异常传递数据。使用raise可以定义新的错误类型,以适应脚本的需要。
自定义异常类: