📅  最后修改于: 2020-09-19 13:48:59             🧑  作者: Mango
我们在编写程序时可能会犯某些错误,而在尝试运行该程序时会导致错误。 Python程序一旦遇到未处理的错误,即会终止。这些错误可以大致分为两类:
由于未遵循语言的正确结构(语法)而导致的错误称为语法错误或解析错误 。
让我们看一个例子:
>>> if a < 3
File "", line 1
if a < 3
^
SyntaxError: invalid syntax
如示例中所示,箭头指示解析器在哪里遇到语法错误。
我们可以在这里注意到if
语句中缺少冒号:
。
在运行时(通过语法测试后) 发生的错误称为异常或逻辑错误 。
例如,当我们尝试打开一个不存在的文件(用于读取)( FileNotFoundError
),尝试将数字除以零( ZeroDivisionError
)或尝试导入不存在的模块( ImportError
)时,它们就会发生。
每当发生这些类型的运行时错误时, Python都会创建一个异常对象。如果处理不当,它将打印出对该错误的回溯以及有关该错误发生原因的一些详细信息。
让我们看看Python如何处理这些错误:
>>> 1 / 0
Traceback (most recent call last):
File "", line 301, in runcode
File "", line 1, in
ZeroDivisionError: division by zero
>>> open("imaginary.txt")
Traceback (most recent call last):
File "", line 301, in runcode
File "", line 1, in
FileNotFoundError: [Errno 2] No such file or directory: 'imaginary.txt'
非法操作会引发异常。当发生相应的错误时, Python中会引发许多内置异常。我们可以使用内置的local()
函数查看所有内置的异常,如下所示:
print(dir(locals()['__builtins__']))
locals()['__builtins__']
将返回一个内置异常,函数和属性的模块。 dir
允许我们将这些属性作为字符串列出。
以下列出了Python编程中一些常见的内置异常以及导致它们的错误:
如果需要,我们还可以在Python定义自己的异常。要了解有关它们的更多信息,请访问Python用户定义的异常。
我们可以使用try
, except
和finally
语句在Python处理这些内置的和用户定义的异常。要了解有关它们的更多信息,请访问Python try,except和finally语句。