1. 程式人生 > 程式設計 >Python內建異常型別全面彙總

Python內建異常型別全面彙總

內建異常基類

在 Python 中,所有異常必須為一個派生自 BaseException 的類的例項。 通過子類化建立的兩個不相關異常類永遠是不等效的,既使它們具有相同的名稱。

下列異常主要被用作其他異常的基類。

BaseException: 所有異常的基類

Exception(重點掌握)

所有內建的非系統退出類異常都派生自此類。 所有使用者自定義異常也應當沒打算自此類。

ArithmeticError

此基類用於派生針對各種算術類錯誤而引發的內建異常: OverflowError,ZeroDivisionError,FloatingPointError。

BufferError

當與 緩衝區 相關的操作無法執行時將被引發。

LookupError

此基類用於派生當對映或序列所使用的鍵或索引無效時引發的異常: IndexError,KeyError

內建異常的層次結構

BaseException       所有異常的基類     
 +-- SystemExit       直譯器請求退出
 +-- KeyboardInterrupt     使用者中斷執行(通常是輸入^C)
 +-- GeneratorExit      生成器(generator)發生異常來通知退出
 +-- Exception        常規錯誤的基類
   +-- StopIteration       迭代器沒有更多值 
   +-- StopAsyncIteration       必須通過非同步迭代器物件的__anext__()方法引發以停止迭代
   +-- ArithmeticError         所有數值計算錯誤的基類
   |  +-- FloatingPointError       浮點計算錯誤
   |  +-- OverflowError         數值運算超出最大限制
   |  +-- ZeroDivisionError       除(或取模)零 (所有資料型別
   +-- AssertionError         斷言語句失敗
   +-- AttributeError         物件沒有這個屬性
   +-- BufferError          與緩衝區相關的操作時引發
   +-- EOFError            沒有內建輸入,到達EOF 標記
   +-- ImportError           匯入失敗
   |  +-- ModuleNotFoundError    找不到模組
   +-- LookupError           無效資料查詢的基類
   |  +-- IndexError           序列中沒有此索引(index)
   |  +-- KeyError            對映中沒有這個鍵
   +-- MemoryError           記憶體溢位錯誤
   +-- NameError            未宣告、初始化物件
   |  +-- UnboundLocalError       訪問未初始化的本地變數
   +-- OSError             作業系統錯誤,
   |  +-- BlockingIOError        操作將阻塞物件設定為非阻塞操作
   |  +-- ChildProcessError       子程序上的操作失敗
   |  +-- ConnectionError        與連線相關的異常的基類
   |  |  +-- BrokenPipeError       在已關閉寫入的套接字上寫入
   |  |  +-- ConnectionAbortedError   連線嘗試被對等方中止
   |  |  +-- ConnectionRefusedError   連線嘗試被對等方拒絕
   |  |  +-- ConnectionResetError    連線由對等方重置
   |  +-- FileExistsError        建立已存在的檔案或目錄
   |  +-- FileNotFoundError       請求不存在的檔案或目錄
   |  +-- InterruptedError       系統呼叫被輸入訊號中斷
   |  +-- IsADirectoryError       在目錄上請求檔案操作
   |  +-- NotADirectoryError      在不是目錄的事物上請求目錄操作
   |  +-- PermissionError       在沒有訪問許可權的情況下執行操作
   |  +-- ProcessLookupError      程序不存在
   |  +-- TimeoutError         系統函式在系統級別超時
   +-- ReferenceError        弱引用試圖訪問已經垃圾回收了的物件
   +-- RuntimeError         一般的執行時錯誤
   |  +-- NotImplementedError   尚未實現的方法
   |  +-- RecursionError      直譯器檢測到超出最大遞迴深度
   +-- SyntaxError          Python 語法錯誤
   |  +-- IndentationError     縮排錯誤
   |     +-- TabError     Tab 和空格混用
   +-- SystemError       一般的直譯器系統錯誤
   +-- TypeError        對型別無效的操作
   +-- ValueError       傳入無效的引數
   |  +-- UnicodeError       Unicode 相關的錯誤
   |     +-- UnicodeDecodeError   Unicode 解碼時的錯誤
   |     +-- UnicodeEncodeError   Unicode 編碼時錯誤
   |     +-- UnicodeTranslateError Unicode 轉換時錯誤
   +-- Warning            警告的基類
      +-- DeprecationWarning     關於被棄用的特徵的警告
      +-- PendingDeprecationWarning  關於構造將來語義會有改變的警告
      +-- RuntimeWarning      可疑的執行行為的警告
      +-- SyntaxWarning      可疑的語法的警告
      +-- UserWarning       使用者程式碼生成的警告
      +-- FutureWarning      有關已棄用功能的警告的基類
      +-- ImportWarning      模組匯入時可能出錯的警告的基類
      +-- UnicodeWarning      與Unicode相關的警告的基類
      +-- BytesWarning       bytes和bytearray相關的警告的基類
      +-- ResourceWarning      與資源使用相關的警告的基類

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。