本文字数:1211 字
阅读本文大概需要:4 分钟
写在之前
从今天开始一个新的篇章又要开始了,这次要写的「错误 & 异常」知识点比较少,不像「类」那样知识点那么多,所以稍微好过一点。
对于程序在执行过程中因为错误或者其它原因而中止的现象,我们在之前文章的代码中已经看过很多次了,那些都可以归为「错误 & 异常」现象,我们接下来就是要对这种现象进行近距离的观察和处理。
错误
其实不管是弱鸡还是大佬,在写代码的时候错误往往是难以避免的,可能是因为手残,也可能是因为拼写错误,当然还有可能是某些比较玄学的错误,比如逗号写成全角的等等等等。总之,写代码中有相当一部分工作就是要不停的修改错误。
Python 中的错误之一就是「语法错误」(Syntax Errors),比如:
上面的那行代码里因为缺少冒号,导致解释器无法解释,于是报错,这个报错其实是 Python 的语法分析器完成的,并检测到了错误所在的文件和行号( File "", line 1 ),还以向上的箭头 ^ 标识错误的位置,最后显示错误类型。
另一种错误就是我们常说的「逻辑错误」,逻辑错误可能是由不合法或者不完整的输入导致的,也可能是无法计算等,或者是其它的逻辑问题。逻辑错误不是由 Python 来检查的,所以此处我们所谈的错误不包括逻辑错误。
异常
当 Python 检测到一个错误时,解释器就无法继续执行下去,于是就抛出提示信息,即为「异常」。有错误时,程序运行过程就会出现异常,让我们先来看一个小例子:
当 Python 抛出异常的时候,首先有「跟踪记录」或者叫「回溯」,后面显示异常的详细信息,包括异常所在的位置,最后一行是异常类型及导致异常的原因。在上面的例子中,明确的告诉我们异常的类型是 ZeroDivisionError,并且对此异常类型做了解释。
异常的类型有很多,我在这说几个常见的类型:
为了能够更好的深入理解,我在这举几个例子,展示一下其中几个异常出现的条件和结果:
1.NameError
在 Python 中虽然不需要在使用变量之前声明类型,但也需要对变量进行赋值,然后才可以使用,不被赋值的变量不能在 Python 中存在,因为变量相当于一个便签,要把它贴到对象上才有意义。
2.IndexError & KeyError
这两个用我们俗语来说就是「鸡蛋里挑骨头」,一定得报错了,不过在实际编程的时候,特别是循环的时候,常常由于循环条件设置的不合理从而出现这种类型的错误。
3.IOError
如果你确认有文件,就一定要把路径写正确,因为你并没有告诉 Python 要对你的计算机进行全身搜查,所以 Python 会按照你指定的未知去找,找不到就会出现异常。
这里只是干说其实没有什么效果,具体的还是要在实际编程中碰到才会印象深刻,这里你先把常见的几个记住,到时候别出现问题的时候不知道是什么错误。
写在最后
当你在运行程序的时候遇到异常时,不要慌张,这个其实是好事情,是 Python 在帮助你修改错误。只要你认真的阅读异常信息,再用我们之前学过的 dir(),help() 或官方文档,搜索工具等来协助,就一定会解决问题。
问题出现了就要解决,明天我们继续来说如何去「处理异常」,敬请期待。
如果你觉得本篇文章对你有帮助的话,欢迎点赞转发,让更多的人看到,在这现行谢过了。
The end。
领取专属 10元无门槛券
私享最新 技术干货