持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情
0 环境
- 编辑器:pycharm或者vscode
- 系统版本:windows10
- python版本:3.9.6
1 异常是什么样子
异常是个什么概念呢,以前遇到过的问题,那个库对中文支持不太友好,比如我要读取一个文件,但是该文件的路径里存在中文,最终会提示未找到该文件,一开始以为这个库的问题,后来打印路径发现,一堆#¥%。。,然后改成英文路径,ok了。这里异常的不一定意味着它就是错了,又或者程序错误。只是说在一条路上,程序的小车在上面跑着,但是在路上出现各种情况,谁也不知道。什么是异常呢,我们常用的一句话,不出意外的话,10点到,那么异常就是这个(出)意外。映射到生活中,本来你计划今天美美的刷剧一天,但是朋友没提前打招呼,突然间就打车过来了,你必须招待不是。计划外的就是异常。但是异常又不可避免,也不能算是错误。那么异常和错误的差别在哪里,在python中,能被捕获处理的,属于异常,不能被捕获处理的是错误,比如经常看到的提示,语法错误,如下图。
2 抛出和捕获异常
在try里执行代码,在出现异常的地方抛出,给到except,在它里面进行处理。
try:
可能会抛出异常的代码(抛出raise xxx,一旦抛出,它下面要执行的代码,就不会被执行,类似直接return)
except:
处理异常
3 总结
假如坐地铁回家,突然通知台风较大,要延时发车,坐不到地铁就是异常,但是可以处理的,这时可以出去打的或者坐公交,因为我们的目标是回家,方向没变。那么错误呢,错误就是本来你是到南极,然后呢师傅把你带到了北极,与目标方向完全相反。在捕获异常中,except块,是可以匹配模式的(特指的异常类型)。