一,异常类继承的层次
Python中异常根类是BaseException。其下又分四大类:
SystemExit 解释器请求退出
KeyboardInterrupt 用户中断执行(Ctrl+C)
GeneratorExit 生成器发生异常来通知退出
Exception 常规错误的基类
我们通常讨论的是在Exception基类下产生的异常(非系统退出的异常)。
如果自定义异常需要继承Exception及其子类,不要直接继承BaseException。
Exception子类中除了异常(英文翻译为错误)还有一类是警告(Warning),提示程序潜在风险。
二,常见异常
1,AttributeError
AttributeError是试图访问一个类中不存在的成员(变量,属性和方法)而引发异常。
2,OSError
OSError是操作系统相关异常,如IOError(输入输出异常),FNFError(未找到文件异常)或磁盘已满异常等。
3,IndexError
IndexError是访问序列元素时,下标索引超出取值范围所引发的异常。
4,KeyError
KeyError是试图访问字典里不存在的键时而引发的异常。
5,NaneError
NameError是试图使用一个不存在的变量而引发的异常。
6,TypeError
TypeError是试图传入变量类型与要求的不符合时而引发的异常。
7,ValueError
ValueError时由于传入一个无效的参数值而引发的异常。
其他遇到的问题
ZeroDivisionError(除数为0异常),SyntaxError(语法错误),AssertionError(断言错误)
三,异常捕获
异常传播过程:
当前函数有能力解决,则捕获异常进行处理;没有能力解决,则抛给上层调用函数处理。
若上层仍无力解决,则继续往上追诉。若所有函数都无法处理,则解释器会终止程序运行。
1,try-except语句

本文详细介绍了Python中的异常处理,包括异常类的继承层次,常见异常类型如AttributeError、OSError等,以及异常捕获机制,如try-except、finally、with语句的应用,还有自定义异常和显式抛出异常的用法。
最低0.47元/天 解锁文章
267

被折叠的 条评论
为什么被折叠?



