异常处理
内容
-
异常处理
-
自定义异常
1. 异常处理
1.1异常概念
异常是程序执行过程中出现的非正常流程现象。
异常是无法避免的,只能先预估出可能出现的异常现象,并提供对应的处理机制,在异常出现后保障程序不被中断执行。
1.2异常处理基本语法
格式一(常用):
try:
____可能引发异常现象的代码
except:
____出现异常现象的处理代码
格式二(不常用):
try:
____可能引发异常现象的代码
finally:
____try代码块结束后运行的代码
格式三(完整格式):
try:
____可能引发异常现象的代码
except:
____出现异常现象的处理代码
else:
____未出现异常现象的处理代码
finally:
____try代码块结束后运行的代码
各代码块功能与执行说明:
1.3异常精细化处理
异常处理可以根据不同种类的异常进行不同的处理方案设计,使用异常名称来进行区分。标准格式如下:
except 异常类名1 as
变量名:
____出现异常现象的处理代码
except
异常类名2 as 变量名:
____出现异常现象的处理代码
except
异常类名3 as 变量名:
____出现异常现象的处理代码
except
Exception as 变量名:
____出现异常现象的处理代码
说明:
1.通过异常类名后面的变量名可以获取到具体异常信息
2.执行了某个except中的内容后,其他except中的内容将不再执行
3.Exception类是所有异常类的父类,能够拦截所有的异常现象,通常
设置成最后一级的捕获
1.4异常对象主动抛出
异常现象可以使用主动抛出的形式来构造,语法格式如下:
raise 异常类对象
注意:异常对象使用raise抛出时,通常是满足某中情况时抛出,否则将会出现程序执行到此处必定抛出异常。
1.5异常处理传递
异常出现后如果没有被捕获处理,该异常将会继续向下传递,到下一次 调用位置。
情况一:使用try嵌套继续处理
情况二:函数/方法间调用,在任意调用位置处理
最后调用处理 中间调用处理
2. 自定义异常
2.1自定义异常基本语法
class 自定义异常类名(Exception):
pass
2.2自定义异常主动触发
raise 异常类对象