Python 处理错误和异常
Python 处理错误和异常
用 Python 写程序时可能会遇到多种类型的错误。最常见的错误与程序的语法有关,通常称为语法错误,这在运行程序前就会发现,这不是讲解的重点。在许多情况下,错误会在程序执行过程中报告。这种错误被称为运行时错误。可以在程序中处理的运行时错误称为异常。接下来将重点介绍如何处理运行时错误或异常。首先,简要介绍以下最常见的运行时错误:
IndexError
:程序尝试以无效索引(内存中的位置)访问项目时会发生此错误;ModuleNotFoundError
:当在系统路径中找不到指定的模块时,会抛出此错误;ZeroDivisionError
:当程序试图将一个数字除以零时,会抛出此错误;KeyError
:当程序试图使用无效键从字典中获取值时,会发生此错误;StopIteration
:当__next__
方法在容器中找不到任何其他项时,会抛出此错误;TypeError
:当程序试图对不合适类型的对象应用操作时,会发生此错误。
官方文档里有完整的异常列表。接下来,会讲解怎么使用合适的结构处理错误。错误,也被作异常。
在Python中处理异常
当出现运行时错误时,程序可能会突然终止,并可能对系统资源造成损坏,例如损坏文件和数据库表。这就是为什么错误或异常处理是用任何语言编写稳健程序的关键要素之一。其想法是预测可能发生运行时错误,如果发生这样的错误,我们的程序将采取什么行为来应对该特定错误。
与许多其他语言一样,Python 使用 try
和 except
关键字。这两个关键字后面是要执行的独立代码块。try
代码块是一组常规语句,我们预计其中可能会发生错误。只有在 try
代码块中出现错误时,才会执行 except
代码块。接下来是使用 try
和 except
块编写 Python 代码的语法:
try:
print(x)
x = 5
y = 0
z = x / y
print('x' + y)
except NameError as e:
print(e)
except ZeroDivisionError:
print("除以 0 错误")
except Exception as e:
print("发生了一个错误")
print(e)
在看下面的输出结果前,可以在脑子里运行一下上面的代码,思考一下会抛出什么异常。下面是输出结果:
name 'x' is not defined
在上面的代码中,为了更好地说明except块的用法,我们添加了多个except块,下面将对此进行解释:
-
NameError
块:当try
块中的语句试图访问未定义的变量时,将执行该块。在我们的代码示例中&