在Python中,raise
語句用于引發異常。Python內置的異常類型有很多種,以下是一些常見的:
- Exception:這是所有異常的基類。當你需要引發一個通用的異常時,可以使用這個類。
- AttributeError:當訪問對象的屬性時,如果該屬性不存在,則會引發此異常。
- IOError:當發生輸入/輸出錯誤時,例如嘗試打開一個不存在的文件。
- ImportError:當無法導入模塊或找不到指定的模塊時,會引發此異常。
- IndexError:當訪問序列(如列表、元組或字符串)中不存在的索引時,會引發此異常。
- KeyError:當嘗試訪問字典中不存在的鍵時,會引發此異常。
- NameError:當嘗試使用未定義的變量時,會引發此異常。
- TypeError:當對某種類型的對象執行不適用的操作時,會引發此異常。
- ValueError:當傳遞給函數的參數類型正確,但值不合適時,會引發此異常。
- ZeroDivisionError:當嘗試除以零時,會引發此異常。
- AssertionError:當使用
assert
語句進行斷言失敗時,會引發此異常。
- AttributeError:當試圖對一個對象執行不適用的操作時,會引發此異常。
- EOFError:當沒有更多的數據可以讀取時(例如,從文件中讀取到文件末尾),會引發此異常。
- GeneratorExit:當一個生成器函數被正常退出(而不是通過
return
語句)時,會引發此異常。
- KeyboardInterrupt:當用戶按下Ctrl+C(或在某些環境中是Ctrl+Break)時,會引發此異常。
- MemoryError:當Python解釋器無法分配足夠的內存以滿足對象分配的需求時,會引發此異常。
- OSError:這是一個更一般的錯誤類型,用于表示操作系統相關的錯誤,例如文件不存在、權限問題等。它是
IOError
的子類。
- OverflowError:當數值運算的結果超出了Python所能表示的范圍時,會引發此異常。
- RecursionError:當遞歸調用層數過多,超過了Python解釋器的最大遞歸深度時,會引發此異常。
- RuntimeError:這是一個非檢查型異常,通常表示在運行時發生了錯誤。例如,嘗試訪問一個空列表的元素。
- StopIteration:當一個迭代器對象耗盡(即沒有更多的元素可以產生)時,會引發此異常。這通常用于
for
循環中。
- SyntaxError:當Python解釋器在解析代碼時遇到語法錯誤時,會引發此異常。
- IndentationError:當代碼塊的縮進不正確時(在Python中,縮進是語法的一部分),會引發此異常。
- TabError:當嘗試在字符串中使用制表符而不是空格進行縮進時(盡管在Python 3中這通常不是錯誤,因為Python會自動將制表符轉換為空格),會引發此異常。但在某些舊版本的Python中,這可能是一個問題。
- SystemExit:這是一個已經廢棄的異常類型,用于表示程序正常退出。應該使用
sys.exit()
函數來替代。
- TypeError:當對某種類型的對象執行不適用的操作時,會引發此異常。
- UnboundLocalError:當在內部函數中引用了一個尚未綁定的局部變量時,會引發此異常。
以上只是Python中的一部分內置異常類型。你可以根據需要自定義異常類,以表示特定于你的應用程序的錯誤情況。自定義異常類通常繼承自Exception
或其子類。