<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## [基本異常](https://lingcoder.gitee.io/onjava8/#/book/15-Exceptions?id=%e5%9f%ba%e6%9c%ac%e5%bc%82%e5%b8%b8) 異常情形(exceptional condition)是指阻止當前方法或作用域繼續執行的問題。把異常情形與普通問題相區分很重要,所謂的普通問題是指,在當前環境下能得到足夠的信息,總能處理這個錯誤。而對于異常情形,就不能繼續下去了,因為在當前環境下無法獲得必要的信息來解決問題。你所能做的就是從當前環境跳出,并且把問題提交給上一級環境。這就是拋出異常時所發生的事情。 除法就是一個簡單的例子。除數有可能為 0,所以先進行檢查很有必要。但除數為 0 代表的究竟是什么意思呢?通過當前正在解決的問題環境,或許能知道該如何處理除數為 0 的情況。但如果這是一個意料之外的值,你也不清楚該如何處理,那就要拋出異常,而不是順著原來的路徑繼續執行下去。 當拋出異常后,有幾件事會隨之發生。首先,同 Java 中其他對象的創建一樣,將使用 new 在堆上創建異常對象。然后,當前的執行路徑(它不能繼續下去了)被終止,并且從當前環境中彈出對異常對象的引用。此時,異常處理機制接管程序,并開始尋找一個恰當的地方來繼續執行程序。這個恰當的地方就是異常處理程序,它的任務是將程序從錯誤狀態中恢復,以使程序能要么換一種方式運行,要么繼續運行下去。 舉一個拋出異常的簡單例子。對于對象引用 t,傳給你的時候可能尚未被初始化。所以在使用這個對象引用調用其方法之前,會先對引用進行檢查。可以創建一個代表錯誤信息的對象,并且將它從當前環境中“拋出”,這樣就把錯誤信息傳播到了“更大”的環境中。這被稱為*拋出一個異常*,看起來像這樣: ~~~ if(t == null) throw new NullPointerException(); ~~~ 這就拋出了異常,于是在當前環境下就不必再為這個問題操心了,它將在別的地方得到處理。具體是哪個“地方”后面很快就會介紹。 異常允許你將做的每件事都當作一個事務來考慮,而異常守護著這些事務:“...事務的基本保障是,我們需要的分布式計算的異常處理機制。事務相當于計算機中的合同法。如果任何事出現了錯誤,我們只需要丟棄整個計算。”你也可以將異常看作一種內建的“恢復”(undo)系統,因為(在細心使用時)你在程序中可以有各種恢復點。一旦程序的一個部分失敗了,異常將“恢復”到一個已知的穩定點上。
                  <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>

                              哎呀哎呀视频在线观看