如何处理 Java 中的 ArithmeticException(未检查)?\
javaobject oriented programmingprogramming更新于 2024/5/10 7:48:00
java.lang.ArithmeticException 是 Java 中的未检查异常。通常,当尝试将两个数字相除并且分母中的数字为零时,会遇到java.lang.ArithmeticException:/ by zero。JVM 可以构造 ArithmeticException 对象。
示例 1
public class ArithmeticExceptionTest { public static void main(String[] args) { int a = 0, b = 10; int c = b/a; System.out.println("Value of c is : "+ c); } }
在上面的例子中,由于分母值为零,发生了 ArithmeticExeption 。
- java.lang.ArithmeticException:除法期间 java 抛出的异常。
- / by zero:是在创建 ArithmeticException 对象 时提供给 ArithmeticException 类的详细消息。
输出
线程"main"中的异常 java.lang.ArithmeticException:/ by zero 在 ArithmeticExceptionTest.main(ArithmeticExceptionTest.java:5)
如何处理 ArithmeticException
让我们使用 try and catch 块来处理 ArithmeticException。
- 用 try and catch 块包围可能抛出 ArithmeticException 的语句。
- 我们可以 捕获ArithmeticException
- 对我们的程序采取必要的措施,因为执行不会中止。
示例2
public class ArithmeticExceptionTest { public static void main(String[] args) { int a = 0, b = 10 ; int c = 0; try { c = b/a; } catch (ArithmeticException e) { e.printStackTrace(); System.out.println("We are just printing the stack trace.\n"+ "ArithmeticException is handled. But take care of the variable \"c\""); } System.out.println("Value of c :"+ c); } }
当发生异常时,执行从发生异常的点开始的catch 块。它会执行catch 块中的语句,并继续执行try 和 catch块之后的语句。
输出
We are just printing the stack trace. ArithmeticException is handled. But take care of the variable "c" Value of c is : 0 java.lang.ArithmeticException: / by zero at ArithmeticExceptionTest.main(ArithmeticExceptionTest.java:6)