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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # java 中的異常處理 > 原文: [https://beginnersbook.com/2013/04/java-exception-handling/](https://beginnersbook.com/2013/04/java-exception-handling/) 異常處理是 java 編程最重要的特性之一,它允許我們處理異常引起的運行時錯誤。在本指南中,我們將學習什么是異常,它的類型,異常類以及如何使用示例處理 java 中的異常。 ## 什么是異常? 異常是一個不需要的事件,它會中斷程序的正常流程。當發生異常時,程序執行將終止。在這種情況下,我們會收到系統生成的錯誤消息。關于異常的好處是它們可以用 Java 來處理。通過處理異常,我們可以向用戶提供有關問題的有意義的消息,而不是系統生成的消息,這可能是用戶無法理解的。 ### 為什么會發生異常? 可能有幾個原因導致程序拋出異常。例如:在程序中打開一個不存在的文件,網絡連接問題,用戶提供的錯誤輸入數據等。 ## 異常處理 如果發生異常(程序員尚未處理),則程序執行將終止,并向用戶顯示系統生成的錯誤消息。例如,查看下面的系統生成異常: **系統生成的異常在**下面給出 ```java Exception in thread "main" java.lang.ArithmeticException: / by zero at ExceptionDemo.main(ExceptionDemo.java:5) ExceptionDemo : The class name main : The method name ExceptionDemo.java : The filename java:5 : Line number ``` 此消息不是用戶友好的,因此用戶將無法理解出錯的地方。為了讓他們用簡單的語言知道原因,我們處理異常。我們處理這些條件,然后向用戶輸出用戶友好的警告消息,這使得他們可以糾正錯誤,因為大多數時候由于用戶提供的錯誤數據而發生異常。 ### 異常處理的優點 異常處理可確保在發生異常時程序流不會中斷。例如,如果一個程序有一堆語句,并且在執行某些語句后中途發生異常,則異常后的語句將不會執行,程序將突然終止。 通過處理,我們確保所有語句都執行,程序流程不會中斷。 ## 錯誤和異常之間的區別 **錯誤**表示出現了嚴重問題,應用應該崩潰而不是嘗試處理錯誤。 **異常**是代碼中發生的事件。程序員可以處理這些情況并采取必要的糾正措施。幾個例子: `NullPointerException` - 當你嘗試使用指向`null`的引用時。 `ArithmeticException` - 當用戶提供錯誤數據時,例如,當您嘗試將數字除以零時,會發生此異常,因為將數字除以零是未定義的。 `ArrayIndexOutOfBoundsException` - 當您嘗試從其邊界外訪問數組的元素時,例如,數組大小為 5(這意味著它有五個元素),并且您嘗試訪問第 10 個元素。 ![Exception classes hierarchy](https://img.kancloud.cn/99/24/9924597a4e7863dda7e7e4d68e3b5423_700x350.jpg) ## 異常的類型 Java 中有兩種類型的異常: 1)受檢的異常 2)非受檢的異常 我已在單獨的教程中詳細介紹了這一點: [Java](https://beginnersbook.com/2013/04/java-checked-unchecked-exceptions-with-examples/) 中的受檢和非受檢異常。 ### 受檢異常 除運行時異常之外的所有異常都稱為受檢異常,因為編譯器在編譯期間檢查它們以查看程序員是否已處理它們。如果在程序中未處理/聲明這些異常,則會出現編譯錯誤。例如,`SQLException`,`IOException`,`ClassNotFoundException`等。 ### 非受檢的異常情況 運行時異常也稱為非受檢的異常。這些異常不會在編譯時檢查,因此編譯器不會檢查程序員是否已經處理過它們,但程序員有責任處理這些異常并提供安全退出。例如,`ArithmeticException`,`NullPointerException`,`ArrayIndexOutOfBoundsException`等。 > 編譯器永遠不會強制您捕獲此類異常或強制您使用`throws`關鍵字在方法中聲明它。 ## 下一個教程將介紹哪些主題 1. [Java 中的`try-catch`](https://beginnersbook.com/2013/04/try-catch-in-java/) 2. [嵌套的`Try Catch`](https://beginnersbook.com/2013/04/nested-try-catch/) 3. [受檢和非受檢的異常](https://beginnersbook.com/2013/04/java-checked-unchecked-exceptions-with-examples/) 4. [Java 中的`finally`塊](https://beginnersbook.com/2013/04/java-finally-block/) 5. [`try-catch-finally`](https://beginnersbook.com/2013/05/flow-in-try-catch-finally/) 6. [`finally`塊和`return`語句](https://beginnersbook.com/2013/05/java-finally-return/) 7. [在 Java 中拋出異常](https://beginnersbook.com/2013/04/throw-in-java/) 8. [`throw`關鍵字](https://beginnersbook.com/2013/12/throw-keyword-example-in-java/)的示例 9. [`throw`關鍵字的例子](https://beginnersbook.com/2013/12/throws-keyword-example-in-java/) 10. [`throws`](https://beginnersbook.com/2013/04/java-throws/) 11. [`throw` vs `throws`](https://beginnersbook.com/2013/04/difference-between-throw-and-throws-in-java/) 12. [異常處理示例](https://beginnersbook.com/2013/04/exception-handling-examples/)
                  <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>

                              哎呀哎呀视频在线观看