08 | 异常处理:如何提高程序的稳定性?(上)
2021/6/19 1:27:04
本文主要是介绍08 | 异常处理:如何提高程序的稳定性?(上),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
你好,我是悦创。
今天这节课,我想和你聊聊 Python 的异常处理。和其他语言一样,异常处理是 Python 中一种很常见,并且很重要的机制与代码规范。
我在实际工作中,见过很多次这样的情况:一位工程师提交了代码,不过代码某处忘记了异常处理。碰巧这种异常发生的频率不低,所以在代码 push 到线上后没多久,就会收到紧急通知——服务器崩溃了。
如果事情严重,对用户的影响也很大,这位工程师还得去专门的会议上做自我检讨,可以说是很惨了。这类事件层出不穷,也告诉我们,正确理解和处理程序中的异常尤为关键。
错误与异常
首先要了解,Python 中的错误和异常是什么?两者之间又有什么联系和区别呢?
通常来说,程序中的错误至少包括两种,一种是语法错误,另一种则是异常。
所谓语法错误,你应该很清楚,也就是你写的代码不符合编程规范,无法被识别与执行,比如下面这个例子:
if name is not None print(name)
If 语句漏掉了冒号,不符合 Python 的语法规范,所以程序就会报错invalid syntax。
而异常则是指程序的语法正确,也可以被执行,但在执行过程中遇到了错误,抛出了异常,比如下面的 3 个例子:
10 / 0Traceback (most recent call last): File "<stdin>", line 1, in <module>ZeroDivisionError: integer division or modulo by zero order * 2Traceback (most recent call last): File "<stdin>", line 1, in <module>NameError: name 'order' is not defined + [1, 2]Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: unsupported operand type(s) for +: 'int' and 'list'
它们语法完全正确,但显然,我们不能做除法时让分母为 0;也不能使用未定义的变量做运算;而让一个整型和一个列表相加也是不可取的。
于是,当程序运行到这些地方时,就抛出了异常,并且终止运行。例子中的ZeroDivisionError NameError和TypeError,就是三种常见的异常类型。
当然,Python 中还有很多其他异常类型,比如KeyError是指字典中的键找不到;FileNotFoundError是指发送了读取文件的请求,但相应的文件不存在等等,我在此不一一赘述,你可以自行参考相应文档。
这篇关于08 | 异常处理:如何提高程序的稳定性?(上)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南