C++ 標準異常類主要包含以下幾種:
- std::exception:這是所有標準異常類的基類,它提供了一個基本的接口,允許程序員捕獲和處理所有標準異常。std::exception 類中定義了一個虛函數 what(),用于返回異常的描述信息。
- std::runtime_error:這是一個派生自 std::exception 的異常類,用于表示在程序運行時發生的錯誤。例如,內存分配失敗、除數為零等。
- std::out_of_range:這也是一個派生自 std::exception 的異常類,用于表示訪問數組、向量等容器時發生的越界錯誤。
- std::bad_alloc:這是一個派生自 std::runtime_error 的異常類,用于表示內存分配失敗的情況。當程序試圖分配內存但系統無法滿足請求時,就會拋出這個異常。
- std::logic_error:這是一個派生自 std::runtime_error 的異常類,用于表示程序中的邏輯錯誤。例如,空指針解引用、數組越界等。
- std::domain_error:這也是一個派生自 std::runtime_error 的異常類,用于表示程序中的域錯誤。例如,嘗試對一個不在有效范圍內的值進行操作。
- std::invalid_argument:這是一個派生自 std::runtime_error 的異常類,用于表示傳遞給程序的參數無效。例如,傳遞了一個空指針作為參數。
- std::length_error:這是一個派生自 std::runtime_error 的異常類,用于表示程序中生成的序列長度超過了所能容納的最大長度。
- std::out_of_memory:這是一個派生自 std::runtime_error 的異常類,用于表示程序在運行時耗盡了內存資源。
- std::iostream_error:這是一個派生自 std::runtime_error 的異常類,用于表示輸入/輸出操作失敗的情況。例如,無法打開文件進行讀取或寫入。
- std::filename_error:這是一個派生自 std::runtime_error 的異常類,用于表示在處理文件名時發生的錯誤。例如,無法找到指定的文件。
- std::error_code:這是一個表示錯誤代碼的類,它提供了一種將錯誤代碼與描述信息關聯起來的方法。std::error_code 可以與標準庫中的各種函數一起使用,以便在發生錯誤時返回詳細的錯誤信息。
除了上述標準異常類外,C++ 還允許程序員自定義異常類,以滿足特定應用程序的需求。自定義異常類通常是通過繼承自 std::exception 或其他標準異常類來實現的。