Python 内置异常和错误类型备忘单
常见 Python 错误类型的参考指南。了解如何调试 ValueError、TypeError、IndexError、KeyError 以及引发异常。
通用逻辑和值异常
表示操作不匹配、索引缺失或变量失败的异常。
| 方法/功能 | 语法 | 描述 |
|---|---|---|
| ValueError | int("abc") | 当函数接收到类型正确但值不适当的参数时引发。 |
| TypeError | "1" + 2 | 当操作或函数应用于不适当类型的对象时引发。 |
| IndexError | my_list[10] | 当序列下标超出范围时引发。 |
| KeyError | my_dict["missing"] | 当找不到字典键时引发。 |
| AttributeError | my_str.append("x") | 当属性引用或赋值失败时引发(例如,在字符串上调用列表方法)。 |
运行时和资源异常
代表外部文件系统、计算崩溃或执行语法错误的问题。
| 方法/功能 | 语法 | 描述 |
|---|---|---|
| FileNotFoundError | open("missing.txt") | 当请求文件或目录但不存在时引发。 |
| ZeroDivisionError | 1 / 0 | 当除法或模运算的第二个参数为零时引发。 |
| SyntaxError | while True print("hi") | 当解析器遇到语法错误时引发。 |
| NameError | print(undefined_variable) | 当未找到本地或全局名称时引发。 |
| StopIteration | next(exhausted_iterator) | 由内置的 next() 引发,表示迭代器没有更多项目。 |
交互式演示脚本
run_all_cheat_methods.py
在编辑器中运行# ValueError
int("abc")
# TypeError
"1" + 2
# IndexError
my_list[10]
# KeyError
my_dict["missing"]
# AttributeError
my_str.append("x")
# FileNotFoundError
open("missing.txt")
# ZeroDivisionError
1 / 0
# SyntaxError
while True print("hi")
# NameError
print(undefined_variable)
# StopIteration
next(exhausted_iterator)常见问题解答
如何在Python中捕获多个异常?
您可以将它们指定为单个 except 块中的元组,例如 except (ValueError, TypeError) as e:。
我什么时候应该手动引发异常?
当代码中发生阻止正常执行的意外情况(例如验证失败)时,使用 raise 关键字引发异常。
相关主题
推荐的 Python 资源
通过相关的交互式教程、备忘单和代码比较来扩展您的知识。