本篇阅读时间约为 8 分钟。文字约1600+
1
前言
今天这篇想介绍下 Python 的一个基础知识点。在早期的 Python 小课堂中,好像并没有写到关于 Python 异常的知识点,那本期就来介绍下 Python 异常相关的知识点。2
什么是异常?
开始讲解之前,先来了解下程序中的概念。
1. 什么是异常?
异常两个字,用大众化的理解就是,当做一件你规划好的事时,中途出现了打断你预期计划的因素,此时这个因素称之为异常。简单举个例子。西天取经路线:3
异常处理
程序运行期间发生异常最大的影响就是会打断程序的正常运行。那么,有没有办法处理它呢?(孙悟空最厉害的不就是"捉妖怪"吗!)Python 为我们提供了一个可以捕获异常的语法,即 try-except。1. 整除0异常捕获
2. raise 主动抛出异常
异常,也可以手动制造,在处理一些特殊的业务场景下,当到达了临界需求,则需要手动抛出异常,将程序终止返回。如下面:
3. finally 处理捕获异常
finally 语句,无论是否发生异常都将执行 finally 中的代码。
八戒和唐僧的对话:
利用 finally :
4. 异常和错误的不同之处
回答下上面抛出的问题:- 错误是捕获不到的
- 异常可以捕获到,并可以进行处理
以语法错误为例,except中的代码没有打印:
4
自定义异常
Python 提供了一个 BaseException 的类,但凡继承它的子类,都属于异常类,这样对于写代码的人来说,异常类是支持自行定义的。
在 Python 中,有个魔法函数 __mro__,通过它,可以看到类的继承关系。
来分别看下常见的三种异常:
ZeroDivisionError
NameError
TypeError
但平时自定义异常,继承 Exception 即可。
自定义一个说话的异常:
5
异常的使用场景
常见的两种场景:
预料不到的情况,需要异常捕获,比如爬虫解析html节点,没解析到,空指针异常。
业务边界的情况,比如web交互,系统之间相互调用,服务端内部系统异常,需要封装异常做些业务处理,再讲相关信息回传给调用端。(刚才举例的自定义异常)
6
总结
写的又有点多了。如果你能看到这里,说明异常的基本用法应该了解了。
简单的再来回顾下学到了什么:
异常的基本定义
捕获异常的用法 try-except
raise 主动抛出异常
finally 关键字的使用
异常和错误的区别
如何自定义异常?
那,本期的内容到此结束,如果你有什么疑问或者想对我说的,欢迎评论区留言探讨。
PS:公众号新出了一个专辑功能,我把之前Python小课堂相关文章都整理进去了,但是预览文章的时候看不到按钮在哪里,有可能发出去,文章最上面的布局会乱掉,试下新功能看看吧~
▼往期精彩回顾▼推荐个网站!这样的搜索姿势,真是爽爆了!!~