每一个异常都是一些类的实例,这些实例可以被引用,并且可以用很多种方法进行捕捉,使得错误可以被处理
处理
try except 语句
同 java的 try catch
try:
except e1:
except e2:
...
try:
...
except (e1, e2):
...
try:
...
except e1 as e:
...可以调用e 之类的操作
try:
...
except:
异常全捕捉
else:
如果没有异常 则。。。
抛出
1 使用raise函数 抛出 异常
2 NameError、SyntaxError、TypeError、ValueError等异常类称为内建异常类
自定义异常
1 以通过创建一个新exception类拥有自己的异常。异常应该继承自Exception类
class MyException(Exception):
def __init__(self):
...
finally
1 无论是否发生异常 都会执行
2 在except 和 else 之后
3 很适合关闭文件和数据库连接
4 异常信息是以堆栈的形式被抛出的,因而是从下往上查看的