1.自动抛出异常对象的情况
2.异常处理需要掌握关键字
try:它被称为扫描器,我们将可能出现的异常代码定义到try语句中,
一旦程序需要了异常,扫描器会立即得到这个对象,并且尝试将此对象给到捕获器except
except:它被称为捕获器,得到匹配的异常对象后,会立即将其处理掉
我们也可以在except语句的内部定义一些想要的逻辑代码...
finally:将我们一定需要被执行的代码放入到finally语句中,就算在之前的try和except中有关键字,finally童谣需要被执行
使用场景:关闭文件操作,关闭数据库连接操作...
else:如果try语句中没有出现异常对象,那么else语句会被执行
如果try语句中有出现异常对象,就算被解决了,else语句也不会被执行
raise:手动抛出一个异常对象, 格式:
raise 异常类型([信息描述])
with:语法糖的一种,不用我们认为的去关闭文件对象了
异常处理的三种格式:
格式一:
try:
可能出现异常的代码
except 异常类型1 as 变量名:
处理异常的代码
except 异常类型2 as 变量名:
处理异常的代码
except 异常类型3 as 变量名:
处理异常的代码
....
except Exception as 变量名:
处理异常的代码
finally:
一定要被执行的代码
格式二:
try:
可能出现异常的代码
except (异常类型1, 异常类型2, 异常类型3,...) as 变量名:
处理异常的代码
finally:
一定要被执行的代码
格式三:
try:
可能出现异常的代码
except 异常类型1 as 变量名:
处理异常的代码
except 异常类型2 as 变量名:
处理异常的代码
...
except:
处理异常的代码
finally:
一定要被执行的代码
4).注意事项
①.对于异常的处理不能解决基本的语法错误,except无能为力
②.在异常处理的代码中可以并列存在多个except语句,但是小类型应该定义在大类型的上面
否则小类型的处理代码永远不会被执行到了
③.在异常处理的代码中可以并列存在多个except语句,扫描一旦得检测到了异常对象,
会先调用第一个except去匹配,如果匹配到了,就捕获处理了;后续的except语句都不会再被执行了
如果没有被匹配上,再依次往后匹配;
④.对于except:这种写法的捕获器,它可以认为是Exception的简化版,
只能定义在最后一个except,否则编辑都过不了
⑤.try语句可以不跟except语句配合使用,但是一般都会配合使用
⑥.如果在try语句中有return关键字,并且有finally语句,
那么会先执行到finally中的代码,然后再回到try中立刻去执行return的返回
那么else中的代码就不能被执行了
总结:对于异常的学习,我们主要就是学这几个关键字:try、except、finally、else、raise、with
网友评论