<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                標準庫中也提供了很多的異常類,它們是通過類繼承組織起來的。異常類繼承層級結構圖如下: ![](https://img.kancloud.cn/dc/c7/dcc7b08e7e128cad67049c4f7c3285e8_775x496.png) 標準異常類的成員: ① 在上述繼承體系中,每個類都有提供了構造函數、復制構造函數、和賦值操作符重載。 ② `logic_error`類及其子類、`runtime_error`類及其子類,它們的構造函數是接受一個string類型的形式參數,用于異常信息的描述 ③ 所有的異常類都有一個what()方法,返回const char* 類型(C風格字符串)的值,描述異常信息。 **標準異常類的具體描述:** | 異常名稱 | 描述 | | --- | --- | | exception | 所有標準異常類的父類 | | `bad_alloc` | 當`operator new and operator new[]`,請求分配內存失敗時 | | `bad_exception` | 這是個特殊的異常,如果函數的異常拋出列表里聲明了`bad_exception`異常,當函數內部拋出了異常拋出列表中沒有的異常,這是調用的unexpected函數中若拋出異常,不論什么類型,都會被替換為`bad_exception`類型 | | bad_typeid | 使用typeid操作符,操作一個NULL指針,而該指針是帶有虛函數的類,這時拋出`bad_typeid`異常 | | `bad_cast` | 使用`dynamic_cast`轉換引用失敗的時候 | | `ios_base::failure` | io操作過程出現錯誤 | | `logic_error` | 邏輯錯誤,可以在運行前檢測的錯誤 | | runtime_error | 運行時錯誤,僅在運行時才可以檢測的錯誤 | **logic_error的子類:** | 異常名稱 | 描述 | | --- | --- | | `length_error` | 試圖生成一個超出該類型最大長度的對象時,例如vector的resize操作 | | `domain_error` | 參數的值域錯誤,主要用在數學函數中。例如使用一個負值調用只能操作非負數的函數 | | `out_of_range` | 超出有效范圍 | | `invalid_argument` | 參數不合適。在標準庫中,當利用string對象構造bitset時,而string中的字符不是’0’或’1’的時候,拋出該異常 | **runtime_error的子類:** | 異常名稱 | 描述 | | --- | --- | | `range_error` | 計算結果超出了有意義的值域范圍 | | `overflow_error` | 算術計算上溢 | | `underflow_error` | 算術計算下溢 | | `invalid_argument` | 參數不合適。在標準庫中,當利用string對象構造bitset時,而string中的字符不是’0’或’1’的時候,拋出該異常 | ~~~ #include <stdexcept> //2013的vs以上可以不用 class Maker { public: int age; public: Maker(int age) { if (age<0 || age>150) { throw out_of_range("年齡不在訪問范圍內"); } else { this->age = age; } } }; void test01() { try { Maker m(-1); } catch (out_of_range &ex) { cout << ex.what() << endl; } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看