每一个异常都是一些类的实例,这些实例可以被引用,并且可以用很多种方法进行捕捉,使得错误可以被处理

处理

try except 语句
同 java的 try catch

  1. try
  2. except e1:
  3. except e2:
  4. ...
  5. try:
  6. ...
  7. except (e1, e2):
  8. ...
  9. try:
  10. ...
  11. except e1 as e:
  12. ...可以调用e 之类的操作
  13. try:
  14. ...
  15. except:
  16. 异常全捕捉
  17. else:
  18. 如果没有异常 则。。。

抛出

1 使用raise函数 抛出 异常
2 NameError、SyntaxError、TypeError、ValueError等异常类称为内建异常类

自定义异常

1 以通过创建一个新exception类拥有自己的异常。异常应该继承自Exception类

  1. class MyException(Exception):
  2. def __init__(self):
  3. ...

finally

1 无论是否发生异常 都会执行
2 在except 和 else 之后
3 很适合关闭文件和数据库连接
4 异常信息是以堆栈的形式被抛出的,因而是从下往上查看的