亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python 错误和内置异常

Python 错误和内置异常

在本教程中,您将了解 Python 内置的不同类型的错误和异常。每当 Python 解释器遇到错误时,就会引发它们。

视频:Python 异常处理

我们在编写程序时可能会犯某些错误,当我们尝试运行它时会导致错误。 python 程序一旦遇到未处理的错误就会终止。这些错误大致可以分为两类:

  1. 语法错误
  2. 逻辑错误(异常)

Python 语法错误

由于不遵循语言的正确结构(语法)而导致的错误称为语法错误解析错误 .

我们来看一个例子:

>>> if a < 3
  File "<interactive input>", line 1
    if a < 3
           ^
SyntaxError: invalid syntax

如示例所示,箭头指示解析器在哪里遇到语法错误。

我们可以注意到这里有一个冒号 : if 中缺少 声明。


Python 逻辑错误(异常)

运行时(通过语法测试后)发生的错误称为异常逻辑错误 .

例如,当我们尝试打开一个不存在的文件(用于读取)时(FileNotFoundError ),尝试将数字除以零 (ZeroDivisionError ),或者尝试导入一个不存在的模块(ImportError )。

每当发生这些类型的运行时错误时,Python 都会创建一个异常对象。如果处理不当,它会打印该错误的回溯以及有关该错误发生原因的一些详细信息。

让我们看看 Python 是如何处理这些错误的:

>>> 1 / 0
Traceback (most recent call last):
 File "<string>", line 301, in runcode
 File "<interactive input>", line 1, in <module>
ZeroDivisionError: division by zero

>>> open("imaginary.txt")
Traceback (most recent call last):
 File "<string>", line 301, in runcode
 File "<interactive input>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'imaginary.txt'

Python 内置异常

非法操作会引发异常。 Python 中有很多内置异常会在发生相应错误时引发。我们可以使用内置的 local() 查看所有内置的异常 功能如下:

print(dir(locals()['__builtins__']))

locals()['__builtins__'] 将返回一个内置异常、函数和属性的模块。 dir 允许我们将这些属性列为字符串。

下面列出了 Python 编程中一些常见的内置异常以及导致它们的错误:

异常 错误原因
AssertionError assert 时引发 语句失败。
AttributeError 属性分配或引用失败时引发。
EOFError input() 时引发 函数达到文件结束条件。
FloatingPointError 浮点运算失败时引发。
GeneratorExit 当生成器的 close() 时引发 方法被调用。
ImportError 在找不到导入的模块时引发。
IndexError 当序列的索引超出范围时引发。
KeyError 在字典中找不到键时引发。
KeyboardInterrupt 当用户点击中断键时触发(Ctrl+CDelete )。
MemoryError 当操作耗尽内存时引发。
NameError 在本地或全局范围内找不到变量时引发。
NotImplementedError 由抽象方法引发。
OSError 当系统操作导致系统相关错误时引发。
OverflowError 当算术运算的结果太大而无法表示时引发。
ReferenceError 当使用弱引用代理访问垃圾收集的引用时引发。
RuntimeError 当错误不属于任何其他类别时引发。
StopIteration next() 提出 函数指示迭代器没有要返回的其他项。
SyntaxError 遇到语法错误时由解析器引发。
IndentationError 在缩进不正确时引发。
TabError 当缩进包含不一致的制表符和空格时引发。
SystemError 解释器检测到内部错误时引发。
SystemExit sys.exit() 提出 函数。
TypeError 当函数或操作应用于不正确类型的对象时引发。
UnboundLocalError 在函数或方法中引用局部变量但没有值绑定到该变量时引发。
UnicodeError 在发生与 Unicode 相关的编码或解码错误时引发。
UnicodeEncodeError 在编码过程中发生与 Unicode 相关的错误时引发。
UnicodeDecodeError 在解码过程中发生与 Unicode 相关的错误时引发。
UnicodeTranslateError 在翻译过程中发生与 Unicode 相关的错误时引发。
ValueError 当函数获得类型正确但值不正确的参数时引发。
ZeroDivisionError 当除法或模运算的第二个操作数为零时引发。

如果需要,我们还可以在 Python 中定义自己的异常。要了解有关它们的更多信息,请访问 Python 用户定义的异常。

我们可以使用 try 在 Python 中处理这些内置和用户定义的异常 , exceptfinally 陈述。要了解有关它们的更多信息,请访问 Python 的 try、except 和 finally 语句。


Python

  1. Python 关键字和标识符
  2. Python 语句、缩进和注释
  3. Python 变量、常量和文字
  4. Python 类型转换和类型转换
  5. Python 输入、输出和导入
  6. Python 全局、局部和非局部变量
  7. Python 数字、类型转换和数学
  8. Python 目录和文件管理
  9. Python 自定义异常
  10. 如何在 Python 中获取当前日期和时间?
  11. Java 抛出和抛出
  12. Python 和 Raspberry Pi 温度传感器