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