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 資源
透過相關的互動式教學、備忘單和程式碼比較來擴展您的知識。