Java 中未處理的異常
Mohammad Irfan
2023年10月12日
本教程介紹了未處理的異常是什麼以及如何在 Java 中處理它。
異常是異常停止程式碼執行並導致程式碼終止的條件。
在 Java 中,錯誤程式碼或系統故障(例如記憶體問題)都可能導致異常。Java 提供了對異常處理的完整支援,以便程式碼可以順利執行而不會終止並提供所需的結果。
未處理的異常稱為未處理的異常,並導致在執行之前終止程式碼。
在本文中,我們將討論什麼是未處理的異常以及如何處理它。讓我們通過一些例子來理解。
Java 中未處理的異常
在這個例子中,我們將從使用者那裡取兩個整數值並將它們相除。這段程式碼工作正常,沒有任何錯誤或異常,但如果除數為零,Java 不會執行程式碼並丟擲異常。
由於我們這裡沒有使用任何異常處理程式,程式碼停止執行並異常終止。我們可以通過控制檯瞭解異常的原因。
這個異常是未處理的,如果處理不當,我們可以看到它是多麼危險。
import java.util.Scanner;
public class SimpleTesting {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter any two values");
int val1 = sc.nextInt();
int val2 = sc.nextInt();
double result = val1 / val2;
System.out.println("result " + result); // this statement does not execute
}
}
輸出:
Enter any two values
30
0
Exception in thread "main" java.lang.ArithmeticException: / by zero
at myproject.SimpleTesting.main(SimpleTesting.java:13)
Java 中的異常處理
在這裡,我們使用處理程式(try-catch 塊)來處理異常。這段程式碼與上面的程式碼類似,不同之處在於它有 try-catch
塊,並且即使在異常之後也讓程式碼執行。
注意程式碼的最後一個列印語句。在上面的程式碼中,這條語句因為異常沒有執行。
儘管如此,即使在下面的程式碼中出現異常後它也會執行,因為現在程式碼不會終止。此外,它會跳過程式碼並通過將結果列印到控制檯來開始執行。
請參閱下面的示例。
import java.util.Scanner;
public class SimpleTesting {
public static void main(String[] args) {
double result = 0.0;
try {
Scanner sc = new Scanner(System.in);
System.out.println("Enter any two values");
int val1 = sc.nextInt();
int val2 = sc.nextInt();
result = val1 / val2;
} catch (Exception e) {
System.out.println("Exception occured " + e);
}
System.out.println("result " + result);
}
}
輸出:
Enter any two values
30
0
Exception occured java.lang.ArithmeticException: / by zero
result 0.0