正在加载...

Python 错误代码

Python 错误代码是 Python 在程序执行过程中遇到意外情况时引发的异常和错误信号集合。理解这些错误代码对于高级开发人员至关重要,它能够帮助精确调试、实现健壮的错误处理,并提高软件可维护性。在软件开发中,当代码违反语法规则、数据类型不匹配、资源缺失或逻辑错误时,错误就会出现。常见的内置异常包括 SyntaxErrorTypeErrorKeyError,此外开发者还可以自定义异常以处理特定应用场景。通过掌握 Python 错误代码,开发者可以快速定位程序故障的根本原因,使用 try/except 块实施有效的异常处理,并为生产环境记录有用的诊断信息。这些知识在后端开发中尤为重要,因为未处理的异常可能导致服务中断、数据损坏或安全漏洞。本参考文档将带领读者全面了解常见 Python 错误、触发条件、调试技巧以及最佳异常管理实践,帮助构建稳定、高效的后端应用程序。

在一个后端服务中,程序可能会读取用户输入、处理文件并与数据库交互。此过程中可能出现 FileNotFoundErrorValueErrorZeroDivisionError 等错误。正确的错误处理能够确保程序在出现意外情况时仍能平稳运行。例如,可以将可能失败的操作放入 try 块中,而 except 块捕获特定异常并进行处理。通过使用多个 except 块,开发者可以针对不同错误类型制定不同的处理策略、记录调试信息,并提供备用机制。同时,finally 块可以确保关键资源如文件句柄或数据库连接在无论是否发生错误的情况下都能正确关闭。此类模式不仅防止程序崩溃,还能提高系统的可靠性和可维护性。在实际后端系统中,良好的错误管理对系统稳定性、性能及用户信任至关重要。

Example

python
PYTHON Code
def process_data():
try:
# NameError: 使用未定义变量
print(undefined_variable)

# ZeroDivisionError: 除以零
result = 10 / 0

# ValueError: 无效类型转换
number = int("abc")

# FileNotFoundError: 文件不存在
with open("non_existent_file.txt", "r") as f:
content = f.read()

# AttributeError: 调用不存在的方法
[].appendx(1)

except NameError as ne:
print(f"捕获 NameError: {ne}")
except ZeroDivisionError as zde:
print(f"捕获 ZeroDivisionError: {zde}")
except ValueError as ve:
print(f"捕获 ValueError: {ve}")
except FileNotFoundError as fe:
print(f"捕获 FileNotFoundError: {fe}")
except AttributeError as ae:
print(f"捕获 AttributeError: {ae}")
except Exception as e:
print(f"捕获通用异常: {e}")
finally:
print("执行清理操作(如关闭文件或数据库连接)")

process_data()

📊 Comprehensive Reference

Error Description When It Occurs Example Notes
SyntaxError 语法错误 Python 代码无效 eval('x === 2') 编译阶段检测
IndentationError 缩进错误 缩进不一致 if True:\nprint("Hi") SyntaxError 子类
TabError 制表符混用 Tab 和空格混用 <tab> <space> print("Hi") 保持缩进一致可避免
NameError 变量未定义 使用未定义变量 print(x) 调试中常见
TypeError 类型错误 操作类型不匹配 5 + "5" 动态类型编程中常见
ValueError 值错误 操作值无效 int("abc") 输入需校验
IndexError 索引错误 列表索引越界 lst = []; lst[1] 访问前检查长度
KeyError 键错误 访问不存在字典键 d = {}; d['x'] 可用 dict.get() 避免
AttributeError 属性错误 对象无此属性 [].appendx(1) 方法名错误常见
ZeroDivisionError 除零错误 除数为零 10 / 0 计算前需检查除数
ImportError 导入错误 模块不存在 import non_module 确保模块存在
ModuleNotFoundError 模块未找到 模块不存在 import non_existent_module ImportError 子类
FileNotFoundError 文件未找到 打开不存在的文件 open("nofile.txt") 检查文件路径
IsADirectoryError 期望文件却是目录 open("folder") 操作系统相关
NotADirectoryError 期望目录却是文件 os.listdir("file.txt") 操作系统相关
PermissionError 权限错误 文件操作权限不足 open("/root/file") 检查用户权限
OSError 操作系统错误 操作系统相关问题 os.remove("/root/file") 多个错误的基类
OverflowError 溢出错误 数值超过范围 2.0**10000 Python 3 中较少
RecursionError 递归深度超限 递归调用过深 def f(): f(); f() 可通过 sys.setrecursionlimit() 调整
MemoryError 内存不足 分配大对象失败 a = 'a' * 10**10 依赖系统内存
StopIteration 迭代器耗尽 对空迭代器调用 next next(iter([])) 自定义迭代器常见
AssertionError 断言失败 assert False 用于条件检查
FloatingPointError 浮点错误 无效浮点运算 numpy.seterr(all='raise') 在 numpy 中常见
UnicodeError 编码/解码错误 "ü".encode("ascii") 检查编码格式
UnicodeDecodeError 解码错误 b'\xff'.decode('utf-8') 文件读取常见
UnicodeEncodeError 编码错误 "ü".encode("ascii") 检查编码格式
RecursionWarning 递归警告 递归过深 import warnings 非致命警告
DeprecationWarning 弃用警告 使用旧功能 warnings.warn("deprecated") 帮助迁移
RuntimeWarning 运行时警告 潜在运行问题 import warnings 非致命警告
FutureWarning 未来警告 功能即将改变 warnings.warn("future") 提前兼容
UserWarning 用户警告 自定义警告 warnings.warn("user") 非致命
PendingDeprecationWarning 待弃用警告 功能可能弃用 warnings.warn("pending") 不常用
ResourceWarning 资源未释放 文件未关闭 open("file") Python 3+
ArithmeticError 算术错误 算术运算失败 int("x")/0 多个算术错误基类
BufferError 缓冲区错误 无效缓冲操作 memoryview(b'').release() 罕见
ConnectionError 连接错误 网络连接失败 requests.get("bad_url") 网络错误基类
BrokenPipeError 管道破裂 写入已关闭管道 os.write(fd, b'data') Unix 系统
ChildProcessError 子进程错误 子进程失败 os.waitpid(-1) 罕见
EOFError 文件结束错误 输入结束 input() EOF 空输入触发
EnvironmentError 环境错误 系统环境问题 os.remove("/root/file") OSError 基类
GeneratorExit 生成器退出 gen.close() 生成器内部使用
IOError 输入输出错误 文件或 I/O 操作失败 open("/root/file") Python 3 中已合并到 OSError
InterruptedError 中断错误 系统调用被中断 os.read(fd, 0) Unix 系统
LookupError 查找错误 查找操作失败 d['x'] 基类
ReferenceError 引用错误 弱引用失效 import weakref 罕见
RuntimeError 运行时错误 raise RuntimeError() 通用运行时错误
StopAsyncIteration 异步迭代结束 async for Python 3.5+
SyntaxWarning 语法警告 可疑语法 warnings.warn("syntax") 不会中断程序
SystemError 系统错误 Python 内部错误 sys._getframe(0) 罕见
SystemExit 系统退出 调用 sys.exit() 退出程序
TimeoutError 超时错误 操作超时 socket.settimeout() 网络或系统调用
UnboundLocalError 局部变量未绑定 在赋值前引用局部变量 x=1; def f(): print(x); x=2 NameError 子类

📊 Complete Properties Reference

Error Exception Type Default Behavior Description Compatibility
SyntaxError Exception 程序停止 语法错误 所有 Python 版本
IndentationError SyntaxError 程序停止 缩进错误 所有 Python 版本
TabError IndentationError 程序停止 Tab 与空格混用 所有 Python 版本
NameError Exception 程序停止 变量未定义 所有 Python 版本
TypeError Exception 程序停止 类型错误 所有 Python 版本
ValueError Exception 程序停止 值错误 所有 Python 版本
IndexError Exception 程序停止 索引越界 所有 Python 版本
KeyError Exception 程序停止 键不存在 所有 Python 版本
AttributeError Exception 程序停止 属性或方法不存在 所有 Python 版本
ZeroDivisionError ArithmeticError 程序停止 除以零 所有 Python 版本
ImportError Exception 程序停止 模块不存在 所有 Python 版本
ModuleNotFoundError ImportError 程序停止 模块不存在 Python 3.6+
FileNotFoundError OSError 程序停止 文件不存在 Python 3+
IsADirectoryError OSError 程序停止 期望文件却是目录 Python 3+
NotADirectoryError OSError 程序停止 期望目录却是文件 Python 3+
PermissionError OSError 程序停止 权限不足 Python 3+
OSError Exception 程序停止 操作系统错误 所有 Python 版本
OverflowError ArithmeticError 程序停止 数值溢出 所有 Python 版本
RecursionError RuntimeError 程序停止 递归深度超限 Python 3+
MemoryError Exception 程序停止 内存不足 所有 Python 版本
StopIteration Exception 程序停止 迭代器耗尽 所有 Python 版本
AssertionError Exception 程序停止 断言失败 所有 Python 版本
FloatingPointError ArithmeticError 程序停止 浮点错误 所有 Python 版本
UnicodeError ValueError 程序停止 编码/解码错误 所有 Python 版本
UnicodeDecodeError UnicodeError 程序停止 解码错误 所有 Python 版本
UnicodeEncodeError UnicodeError 程序停止 编码错误 所有 Python 版本
RecursionWarning Warning 程序继续 递归警告 所有 Python 版本
DeprecationWarning Warning 程序继续 弃用警告 所有 Python 版本
RuntimeWarning Warning 程序继续 运行时警告 所有 Python 版本
FutureWarning Warning 程序继续 未来警告 所有 Python 版本
UserWarning Warning 程序继续 用户警告 所有 Python 版本
PendingDeprecationWarning Warning 程序继续 待弃用警告 所有 Python 版本
ResourceWarning Warning 程序继续 资源未释放 Python 3+
ArithmeticError Exception 程序停止 算术错误 所有 Python 版本
BufferError Exception 程序停止 缓冲区错误 所有 Python 版本
ConnectionError OSError 程序停止 连接错误 Python 3+
BrokenPipeError OSError 程序停止 管道破裂 Python 3+
ChildProcessError OSError 程序停止 子进程错误 Python 3+
EOFError Exception 程序停止 文件结束错误 所有 Python 版本
EnvironmentError OSError 程序停止 环境错误 Python 3+
GeneratorExit Exception 程序停止 生成器退出 所有 Python 版本
IOError OSError 程序停止 输入输出错误 Python 3+
InterruptedError OSError 程序停止 中断错误 Python 3+
LookupError Exception 程序停止 查找错误 所有 Python 版本
ReferenceError Exception 程序停止 引用错误 Python 3+
RuntimeError Exception 程序停止 运行时错误 所有 Python 版本
StopAsyncIteration Exception 程序停止 异步迭代结束 Python 3.5+
SyntaxWarning Warning 程序继续 语法警告 所有 Python 版本
SystemError Exception 程序停止 系统错误 所有 Python 版本
SystemExit Exception 程序停止 系统退出 所有 Python 版本
TimeoutError OSError 程序停止 超时错误 Python 3+
UnboundLocalError NameError 程序停止 局部变量未绑定 Python 3+
ZeroDivisionError ArithmeticError 程序停止 除以零 所有 Python 版本

🧠 测试您的知识

准备开始

Test

Challenge yourself with this interactive quiz and see how well you understand the topic

3
问题
🎯
70%
及格要求
♾️
时间
🔄
尝试次数

📝 说明

  • 仔细阅读每个问题
  • 为每个问题选择最佳答案
  • 您可以随时重新参加测验
  • 您的进度将显示在顶部