刻意练习——Python基础Task08.异常处理
- 使用try…except捕获异常:
#异常处理机制的语法结构
try:
#业务实现代码
...
except (Error1,Error2,...)
alert 输入不合法
goto retry
- try块(出现异常)→提交给Python解释器→寻找合适的except块处理
(找不到合适的except块)→运行终止解释器退出 - except-continue:except块向用户提示不合法,continue忽略本次循环剩下的代码,开始执行下一次循环
常见的异常
-
IndexError:运行该程序时输入的参数不够
-
ValueError:运行该程序时输入的参数不是数字,而是字母
-
Arithmetic:除0错误
-
要遵循先捕获小异常,再捕获大异常
- 一个except块可以捕获多种类型的异常:只需将多个异常类用圆括号括起,中间用逗号隔开即可
异常对象包含的常用属性和方法
- args:该属性返回异常的错误编号和描述字符串
- errno:该属性返回异常的错误编号
- strerror:该属性返回异常的描述字符串
- with_traceback()方法:处理异常的传播轨迹信息
-
else块:当try块没有出现异常时,程序会执行else块
-
finally块:回收物理资源
-
raise语句:在程序中自行引发异常
1.raise:单独一个raise。该语句引发当前上下文中捕获的异常,或默认引发RuntimeError异常
2.raise异常类:raise后带一个异常类。该语句引发指定异常类的默认实例。raise语句每次只能引发一个异常实例
3.raise异常对象:引发指定的异常对象
4.raise不需要参数:不带参数,且此时raise语句处于except块中,它将会自动引发当前上下文激活的异常;否则,通常默认引发RuntimeError异常 -
自定义异常类:自定义异常都应该继承Exception基类或Exception的子类,在自定义异常类时基本不需要书写更多的代码,只要指定自定义异常类的父类即可