|
C++提供了標準的例外處理類別,所有的標準例外處理類別都衍生自exception類別,使用它必須包括exception標頭檔,而
exception類別衍生出來的logic_error類別與runtime_error類別在使用時,則必須包括stdexcept標頭檔,以下列出
exception與其衍生類別的繼承架構: exception
bad_alloc bad_exception ios:base:failure bad_cast bad_typedid logic_error lehgth_error domain_error invalid_argument out_of_range runtime_error overflow_error range_error underflow_error 當錯誤發生而丟出例外物件時,您可以使用what()方法來取得錯誤訊息,這個錯誤訊息視您所採用的編譯器而有所不同,下面這個程式故意存取超出字串範圍 的資料,以引發out_of_range例外並顯示訊息: #include <iostream> 執行結果:
下面這個程式則是利用迴圈不斷配置記憶體,直到記憶體不足而發生bad_alloc例外為止,您可以觀察到例外的捕捉與訊息: #include <iostream> 執行結果:
|