概述
1.再次回顾程序结构
程序由模块组成,模块包含了语句块,语句块中包含了表达式,表达式创建并处理对象。
2.异常类的使用
>>> class General(Exception):pass
...
>>> class Specific1(General):pass
...
>>> class Specific2(General):pass
...
>>> def raise0():
... X = General()
... raise X
...
>>> def raise1():
... X = Specific1()
... raise X
...
>>> def raise2():
... X = Specific2()
... raise X
...
>>> for func in (raise0,raise1,raise2):
... try:
... func()
... except General:
... import sys
... print('caught:',sys.exc_info()[0])
...
caught: <class '__main__.General'>
caught: <class '__main__.Specific1'>
caught: <class '__main__.Specific2'>
>>>
上述例子可以说明,捕获General的处理器也会捕获其任何子类。
此处的General的使用,类似我们常用的Exception超类,所有异常类继承自Exception超类(这里的General也是如此),所以使用Exception可以捕获所有的异常。
3.类异常的优点
(1)使用超类,方便对其所有的子类进行捕获
(2)正因为对超类的继承,后期如果有新增的子类,不会影响对异常的捕获,维护更方便
4.异常根超类
BaseException 异常的顶级根类
Exception 与应用相关的异常的顶层根超类,是BaseException的一个直接子类,并且是所有其他内置异常的超类,除了系统退出事件类之外(SystemExit KeyboardInterrupt GeneratorExit)。同时,几乎所有用户定义的异常类都应该继承Exception,而不是BaseException,因此Exception变成了try语句的全捕获,与一个空的except相似,但它允许系统退出异常而且像平常那样通过。
ArithmethicError 所有数值错误的超类(它是Exception的一个子类)
OverflowError 识别特定的数值错误的子类
最后
以上就是儒雅龙猫为你收集整理的python学习手册(第4版) 第三十四章 异常对象的全部内容,希望文章能够帮你解决python学习手册(第4版) 第三十四章 异常对象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复