Java算术异常是一种未经检查的错误或代码异常结果,当代码在运行时发生错误的算术或数学运算时抛出。运行时问题,也称为异常,是指当分母为整数 0 时,JVM 无法计算结果,从而终止程序的执行,并引发异常。引发异常的点程序终止,但执行之前的代码,并显示结果。
java算术异常的基类是lang.ArithmeticException,它属于java.lang.RuntimeException。
广告 该类别中的热门课程 JAVA 掌握 - 专业化 | 78 课程系列 | 15 次模拟测试开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
基类ArithmeticException的结构:
1。 ArithmeticException(): 定义一个没有传递参数或没有任何详细消息的算术异常。
2。 ArithmeticException(String s): 定义一个传递一个参数的 ArithmeticException。
s: s 为详细消息
下面是两种可能导致 Java ArithmeticException 的情况:
当我们尝试将数字除以零时,Java 中会抛出算术异常。下面是java代码来说明操作:
代码:
package com.java.exception; public class ArithmeticException { void division(int a,int b) { int c=a/b; System.out.println("Division has been successfully done"); System.out.println("Value after division: "+c); } public static void main(String[] args) { ArithmeticException ex=new ArithmeticException(); ex.division(10,0); } }
输出:
由于我们将 10 除以 0,其中 0 是整数且未定义,因此会抛出上述算术异常。
代码:
//package com.java.exception; public class ArithmeticException { void division(int a,int b) { int c=a/b; System.out.println("Division of a number is successful"); System.out.println("Output of division: "+c); } public static void main(String[] args) { ArithmeticException ex=new ArithmeticException(); ex.division(10,5); } }
输出:
Java 有一个 BigDecimal 类,它表示十进制数,最多可达大量精度数字。此类 java 还具有一些基本数据类型中不可用的功能集,例如整数、双精度数和浮点数。这些功能提供对小数的四舍五入
下面是演示代码:
代码:
//package com.java.exception; import java.math.BigDecimal; public class ArithmeticException { public static void main(String[] args) { BigDecimal a=new BigDecimal(1); BigDecimal b=new BigDecimal(6); a=a.divide(b); System.out.println(a.toString()); } }
输出:
在上面编写的java代码中,由于大十进制类不知道如何处理除法输出,因此它在输出控制台中抛出或显示算术异常。
它抛出一个异常,并带有详细消息“非终止十进制扩展,没有精确的表示。”
上述大十进制类的一种可能的出路是从一个大十进制数中陈述我们需要的小数位数,然后将该值限制为一定的小数位数。例如,通过将数字四舍五入到第 7 位小数精度值,应将 c 限制为小数点后 7 位。
示例#2代码:
//package co.java.exception; import java.math.BigDecimal; public class ArithmeticException { public static void main(String[] args) { BigDecimal a=new BigDecimal(1); BigDecimal b=new BigDecimal(6); a=a.divide(b,7,BigDecimal.ROUND_DOWN);// limit of decimal place System.out.println(a.toString()); } }
输出:
输出控制台将结果显示为带有第 7
位小数点值的数字,这意味着舍入效果很好。
如何避免或处理Java ArithmeticException?异常是通过使用try和catch的组合来处理的。 try/catch 块被放置在可能生成异常的代码中。在 try/catch 块内编写的代码称为受保护代码。
语法:
try { set of statements//protected code } catch (exceptionname except) { // Catch set of statements---can contain single catch or multiple. }
Code:
public class ExceptionHandled { public static void main(String args[]) { int x =100, y = 0; int z; System.out.println("Hello world"); try { z = x/y; System.out.println(z); } catch(ArithmeticException except) { System.out.println("Avoid dividing by integer 0" + except ); } System.out.println("Hello class"); System.out.println("Hello there"); } }
Output:
Hello class and Hello, there are also printed on the output console apart from Hello world. This is the outcome of the exception handling mechanism.
Explanation:
This article has learned about java arithmetic exception and how to handle the exception under try and catch block. An arithmetic exception occurs most of the time because of the division of a number by integer 0. In this article, I have used a single catch for a single try, but we can also use multiple catch for a single try.
以上是Java 算术异常的详细内容。更多信息请关注PHP中文网其他相关文章!