當你執行Java程式碼或程式時,它要麼編譯並執行,要麼拋出錯誤。當程式碼拋出異常時,它是錯誤或異常的結果。
錯誤更嚴重。它發生在程式碼範圍之外,但在應用程式運行的環境內。該程式預計不會捕獲並處理錯誤。
一些錯誤範例是
異常發生在程式碼範圍內。它也稱為執行錯誤,這意味著它在程式碼執行期間發生。程式設計師應該捕獲並處理程式中的異常。
這篇文章將更專注於異常和運行時錯誤。您將了解有關異常以及如何處理 Java 程式中的異常錯誤的所有資訊。
Java中存在三種類型的執行錯誤。這是每個人的細分
這種類型的錯誤稱為編譯錯誤或檢查錯誤。 Java 程式在編譯階段會拋出此程式碼。
換句話說,這個錯誤是在Javac程式碼編譯為字節碼時發生的。編譯時錯誤通常是由程式碼語法錯誤引起的。
例如,當程式設計師未能在語句末尾加上分號或未能在列印之前初始化變數時。
public class JavaExceptionCodes { public static void main (String []args){ int y = 10 //no semicolon System.out.println(y); } }
運行時錯誤也稱為異常錯誤或未經檢查的錯誤。它在程式執行時發生。程式碼可以編譯,但在運行時會拋出錯誤。
運行時錯誤可以進一步分為內建異常和使用者定義異常。內建異常的範例包括:
例如,如果使用者輸入 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 用於方法簽名中,而不是方法內部。
一個 try 區塊可以有多個語句(程式碼行)。最好建立多個 catch 區塊來捕獲每個語句中的錯誤。
如果您使用多個 catch 區塊,請務必指定異常類型。
如果一個try區塊中有多個語句,並且你不知道出錯的語句,可以在其他異常的末尾創建一個最終的一般異常來捕獲未知錯誤。
始終將通用異常捕獲塊放置在其他自訂異常捕獲塊的末尾。
以上是Java 中的異常處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!