」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Java 中的異常處理

Java 中的異常處理

發佈於2024-08-01
瀏覽:167

Exception Handling In Java

當你執行Java程式碼或程式時,它要麼編譯並執行,要麼拋出錯誤。當程式碼拋出異常時,它是錯誤或異常的結果。

錯誤更為嚴重。它發生在程式碼範圍之外,但在應用程式運行的環境內。該程式預計不會捕獲並處理錯誤。

錯誤的一些例子是

  • 記憶體不足錯誤
  • 虛擬機器錯誤
  • StackOverFlowError

異常發生在代碼範圍內。它也稱為執行錯誤,這意味著它在程式碼執行期間發生。程式設計師應該捕獲並處理程式中的異常。

這篇文章將更專注於異常和運行時錯誤。您將了解有關異常以及如何處理 Java 程式中的異常錯誤的所有資訊。

Java 中的執行錯誤類型

Java中存在三種類型的執行錯誤。這是每個人的細分

。編譯時錯誤

這種類型的錯誤稱為編譯錯誤或檢查錯誤。 Java 程式在編譯階段會拋出此程式碼。

換句話說,這個錯誤是在Javac程式碼編譯為字節碼的時候發生的。編譯時錯誤通常是由程式碼語法錯誤引起的。

例如,當程式設計師未能在語句末尾加上分號或未能在列印之前初始化變數時。

public class JavaExceptionCodes {
    public static void main (String []args){
        int y = 10      //no semicolon
        System.out.println(y);
    }

}

。運行時錯誤

運行時錯誤也稱為異常錯誤或未經檢查的錯誤。它在程式執行時發生。程式碼將編譯,但在運行時會拋出錯誤。

運行時錯誤可進一步分為內建異常和使用者定義異常。內建異常的範例包括:

  • ArrayIndexOutOfBoundsException
  • 算術異常
  • FileNotFoundException
  • 空指標異常

例如,如果使用者輸入 int 而不是字串或插入大於陣列大小的值。

public class JavaExceptionCodes {
    public static void main (String []args) {
        int nombas[] = {1, 2, 3, 4, 5};
        System.out.println(nombas[6]); 

    }
}
//ArrayIndexOutOfBoundsException

。邏輯錯誤

也稱為語意錯誤,如果程式的邏輯輸出有錯誤,就會發生這種錯誤。例如,3 3 顯示輸出 7,或當您登入帳戶並登陸另一個個人資料時。

編譯時錯誤是最容易捕獲的,因為您的 IDE 總是會向程式設計師指出此錯誤。大多數時候邏輯錯誤是最難看到的錯誤,因為程式碼不會拋出編譯時或執行時錯誤。

異常處理的概念

異常處理用於捕獲程式中的錯誤並維持程式執行的正常流程。通常,一旦程式拋出錯誤,程式碼就會停止執行。

預先捕獲並處理錯誤將使程式能夠跳過有錯誤的程式碼區塊並繼續執行程式的其餘部分。

異常處理方法:

Try – Catch – Final – Throw – Throws是Java中異常處理的方法清單。讓我們透過範例詳細分析它們:

。嘗試

Try 用來括起可能引發異常的一行或幾行程式碼。還有一個嵌套的 try,它是帶有內部 try 區塊的 try。他們服務於相同的目的。

句法

try{

}

。抓住

catch 是用來擷取 try 區塊中拋出的錯誤的程式碼區塊。

句法

try{

}
catch (Exception e){

}

多個 catch 區塊

public class JavaExceptionCodes {
    public static void main (String []args) {
        int x = 10;
        int y = 0;
        int z ;
        int nombas [] = {5, 6, 7, 8, 9};
        try {
            System.out.println(z = x / y);
            System.out.println(nombas[6]);
        }
        catch (ArithmeticException e){
            System.out.println("Can't divide by 0. Choose another number"   e);
        }
        catch(ArrayIndexOutOfBoundsException e){
            System.out.println("Array Out Of Bound"   e);
        }
        System.out.println("End");
    }
}

。最後

最後是一個可選的程式碼區塊,通常放置在 try 和 catch 程式碼區塊之後。它用於執行重要的程式碼。無論程式是否拋出錯誤,finally 區塊都會被執行。

句法

try{

}
catch (Exception e){

}
finally{

}

。丟

Throw 是一個關鍵字,用於在方法或程式碼區塊內引發異常。

句法

public class JavaExceptionCodes {
    public static void main (String []args) {

           try { throw new ArithmeticException("Try Run");
           }
           catch (ArithmeticException e){
               System.out.println("Catch Exception Error");
           }

    }
}

。投擲

與 throw 關鍵字不同, throws 關鍵字不用於引發例外。但是,它指定該方法可能存在異常。 Throws 用於方法簽名中,而不是方法內部。

處理異常的最佳實踐

  1. 一個 try 區塊可以有多個語句(程式碼行)。最好建立多個 catch 區塊來捕獲每個語句中的錯誤。

  2. 如果您使用多個 catch 區塊,請務必指定異常類型。

  3. 如果一個try區塊中有多個語句,並且您不知道出錯的語句,則在其他異常的末尾創建一個最終的一般異常來捕獲未知錯誤。

  4. 始終將通用異常 catch 區塊放在其他自訂異常 catch 區塊的末端。

版本聲明 本文轉載於:https://dev.to/akamzchidi/exception-handling-in-java-f32?1如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3