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

精通 Python 错误与内置异常

Python 错误与内置异常

了解 Python 如何发出问题信号、语法错误与运行时错误的区别,以及如何自信处理内置异常。

视频:Python 异常处理

运行 Python 程序时,若遇到未处理错误,解释器会立即停止执行。错误大致分两类:

  1. 语法错误——解析阶段检测到的问题。
  2. 逻辑错误(异常)——代码执行时出现的问题。

Python 语法错误

源代码违反 Python 语法规则时发生语法错误。错误消息中用插入符 (^) 指向确切位置。

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

此例中 if 语句缺少冒号 (:) 触发 SyntaxError。


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 解释器引发大量内置异常以指示不同失败条件。可用以下片段列出:

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

以下是常见内置异常及触发情况的简明参考:

异常错误原因
AssertionErrorassert 语句失败时引发
AttributeError属性赋值或引用失败时引发
EOFErrorinput() 遇到文件结束条件时引发
FloatingPointError浮点运算失败时引发
GeneratorExit生成器 close() 方法被调用时引发
ImportError导入模块未找到时引发
IndexError序列索引越界时引发
KeyError字典中键缺失时引发
KeyboardInterrupt用户按 Ctrl+C 或 Delete 时引发
MemoryError操作超出可用内存时引发
NameError变量在局部或全局作用域未找到时引发
NotImplementedError抽象方法缺乏实现时引发
OSError系统相关错误(如文件 I/O)引发
OverflowError算术结果过大无法表示时引发
ReferenceError弱引用代理垃圾回收对象时引发
RuntimeError不适合其他类别的错误引发
StopIterationnext() 迭代器耗尽时引发
SyntaxError解析器遇到无效语法时引发
IndentationError缩进不正确时引发
TabError缩进混用制表符和空格不一致时引发
SystemError解释器检测到内部错误时引发
SystemExitsys.exit() 引发
TypeError操作或函数收到不当类型对象时引发
UnboundLocalError局部变量赋值前被引用时引发
UnicodeErrorUnicode 相关编码或解码错误引发
UnicodeEncodeErrorUnicode 编码错误时引发
UnicodeDecodeErrorUnicode 解码错误时引发
UnicodeTranslateErrorUnicode 转换错误时引发
ValueError函数收到正确类型但不当值的参数时引发
ZeroDivisionError除法或取模运算除数为零时引发

若需更细粒度控制,Python 允许定义自定义异常类。详见 Python 用户定义异常。

异常处理用 try、except、finally 块直观实现。深入请参考 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. Python 获取当前日期和时间:实用指南
  12. Java throw 与 throws 深度解析:异常处理实战指南