<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://lingcoder.gitee.io/onjava8/#/book/15-Exceptions?id=%e5%bc%82%e5%b8%b8%e5%a3%b0%e6%98%8e) Java 鼓勵人們把方法可能會拋出的異常告知使用此方法的客戶端程序員。這是種優雅的做法,它使得調用者能確切知道寫什么樣的代碼可以捕獲所有潛在的異常。當然,如果提供了源代碼,客戶端程序員可以在源代碼中查找 throw 語句來獲知相關信息,然而程序庫通常并不與源代碼一起發布。為了預防這樣的問題,Java 提供了相應的語法(并強制使用這個語法),使你能以禮貌的方式告知客戶端程序員某個方法可能會拋出的異常類型,然后客戶端程序員就可以進行相應的處理。這就是異常說明,它屬于方法聲明的一部分,緊跟在形式參數列表之后。 異常說明使用了附加的關鍵字 throws,后面接一個所有潛在異常類型的列表,所以方法定義可能看起來像這樣: ~~~ void f() throws TooBig, TooSmall, DivZero { // ... ~~~ 但是,要是這樣寫: ~~~ void f() { // ... ~~~ 就表示此方法不會拋出任何異常(除了從 RuntimeException 繼承的異常,它們可以在沒有異常說明的情況下被拋出,這些將在后面進行討論)。 代碼必須與異常說明保持一致。如果方法里的代碼產生了異常卻沒有進行處理,編譯器會發現這個問題并提醒你:要么處理這個異常,要么就在異常說明中表明此方法將產生異常。通過這種自頂向下強制執行的異常說明機制,Java 在編譯時就可以保證一定水平的異常正確性。 不過還是有個能“作弊”的地方:可以聲明方法將拋出異常,實際上卻不拋出。編譯器相信了這個聲明,并強制此方法的用戶像真的拋出異常那樣使用這個方法。這樣做的好處是,為異常先占個位子,以后就可以拋出這種異常而不用修改已有的代碼。在定義抽象基類和接口時這種能力很重要,這樣派生類或接口實現就能夠拋出這些預先聲明的異常。 這種在編譯時被強制檢查的異常稱為被檢查的異常。
                  <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>

                              哎呀哎呀视频在线观看