首页 > 编程笔记

Python异常和错误的区别

严格地来说,异常和错误是有区别的。

错误

从软件方面来说,错误是语法或逻辑上的。
当 Python 检测到一个错误时,解释器就会指出当前流已经无法继续执行,这时候就出现了异常。

异常

对异常的较好描述是:它是因为程序出现了错误而在正常控制流以外采取的行为。这个行为又分为两个阶段:
第一个阶段是在引发了一个异常条件(有时候也叫作例外的条件)后发生的。只要检测到错误并且意识到异常条件,解释器就会引发异常。引发也可以叫作触发或者生成,解释器通过它通知当前控制流有错误发生。

Python 也允许程序员自己引发异常,无论异常是 Python 解释器还是程序员引发的,异常就是错误发生的信号,当前流将被打断,用来处理这个错误并采取相应的操作,这就是第二个阶段。

对异常的处理发生在第二个阶段。

异常引发后,可以调用很多不同的操作,可以是忽略错误(记录错误但不采取任何措施,采取补救措施后将终止程序),或是减轻问题的影响后设法继续执行程序。所有的这些操作都代表一种“继续”,或是控制的分支,关键是程序员在错误发生时可以指示程序如何执行。

类似 Python 这样支持引发和处理异常(这更重要)的语言,可以让程序员在错误发生时更直接地控制它们。这样程序员不仅能检测错误,还可以在它们发生时采取更可靠的补救措施。

由于有了运行时管理错误的能力,程序的健壮性有了很大的提高。

推荐阅读