第八章 异常
8.1 什么是异常
Python用异常对象来表示异常情况,如果异常信息未被处理,则会通过回溯(Traceback)来终止执行。
例如1/0,回溯ZeroDivisionError。
8.2 按自己的方式出错
可以用dir(exceptions)函数列出内建异常Exceptions模块里的全部内容。
常见异常:可以使用help()帮助查看
'AttributeError' 幅值、特性引用
'IOError' 打开文件错误
'IndexError' 不存在索引
'KeyError' 不存在键
'NameError' 找不到变量
'SyntaxError' 代码形式错误
'TypeError' 类型错误对象错误
'ValueError' 对象使用不合适的值
'ZeroDivisionError' 0在分母
自定义异常信息:>>>raise Exception(‘xxx error’) #括号内为提示信息
>>>class SomeCustomException(Exception):pass
8.3 捕捉异常
try:
执行1……
except xxxError:
执行2……
except xxxError:
执行3……
8.5 用一个块捕捉两个异常
将异常放在元组中
try:
执行1……
except (xxxError, xxxError…):
执行2……
8.6 捕捉异常并打印
格式:except (error1,error2…),e:
print e
8.7 全部捕捉异常
格式:except:
8.8 万事大吉
try:
…
except:
…
else:
执行到这一步万事大吉
8.9 最后Finally
try:
…
finally:
… #无论try是否异常,也会执行finally语句
8.10 异常与函数
异常若未在函数体中处理,则会传递到调用函数处,再传递到主程序,最后崩溃。