08 | 异常处理:如何提高程序的稳定性?(上)

08 | 异常处理:如何提高程序的稳定性?(上),第1张

概述你好,我是悦创。今天这节课,我想和你聊聊Python的异常处理。和其他语言一样,异常处理是Python中一种很常见,并且很重要的机制与代码规范。我在实际工作中,见过很多次这样的情况:一位工程师提交了代码,不过代码某处忘记了异常处理。碰巧这种异常发生的频率不低,所以在代码push到线

你好,我是悦创。

今天这节课,我想和你聊聊 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 + [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 | 异常处理:如何提高程序的稳定性?(上)全部内容,希望文章能够帮你解决08 | 异常处理:如何提高程序的稳定性?(上)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1183671.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存