C 標準庫異常類

2021-07-05 02:07:49 字數 1084 閱讀 6846

c++標準庫異常類繼承層次中的根類為exception,其定義在exception標頭檔案中,它是c++標準庫所有函式丟擲異常的基類,exception的介面定義如下:

namespace std ;

}

除了exception類,c++還提供了一些類,用於報告程式不正常的情況,在這些預定義的類中反映的錯誤模型中,主要包含邏輯錯誤和執行時錯誤兩大類。

邏輯錯誤主要包括invalid_argument, out_of_range, length_error, domain_error。當函式接收到無效的實參,會丟擲invaild_argument異常,如果函式接收到超出期望範圍的實參,會丟擲out_of_range異常,等等。

namespace std ;

class invalid_argument: public logic_error ;

class out_of_range: public logic_error ;

class length_error: public logic_error ;

class domain_error: public logic_error ;

}

執行時錯誤由程式域之外的事件引發,只有在執行時才能檢測,主要包括range_error, overflow_error, underflow_error。函式可以通過丟擲range_eroor報告算術運算中的範圍錯誤,通過丟擲overflow_error報告溢位錯誤。

namespace std ;

class range_error: public runtime_error ;

class overflow_error: public runtime_error ;

class underflow_error: public runtime_error ;

}

另外,在new標頭檔案中定義了bad_alloc異常,exception也是bad_alloc的基類,用於報告new操作符不能正確分配記憶體的情形。當dynamic_cast失敗時,程式會丟擲bad_cast異常類,其也繼承自exception類。

C 標準庫異常類繼承層次

檢視exception標頭檔案 對這種形式的定義不是太懂,再多看看 有空去理解 c 標準庫異常類繼承層次中的根類為exception,其定義在exception標頭檔案中,它是c 標準庫所有函式丟擲異常的基類,exception的介面定義如下 namespace std class exceptio...

C 標準庫異常

標準庫中也提供了很多的異常類,它們是通過類繼承組織起來的。異常類繼承層級結構圖如下 每個類所在的標頭檔案在圖下方標識出來。標準異常類的成員 在上述繼承體系中,每個類都有提供了建構函式 複製建構函式 和賦值操作符過載。logic error類及其子類 runtime error類及其子類,它們的建構函...

C 中的標準異常類

c 中的標準異常類 namespace std exception派生 class logic error 邏輯錯誤,在程式執行前可以檢測出來 logic error派生 class domain error 違反了前置條件 class invalid argument 指出函式的乙個無效引數 cl...