当前位置: 首页 > web >正文

java.lang.ArithmeticException

ArithmeticException算术异常类在java.lang包下,继承RuntimeException运行期异常,算术异常类在Java1.0就有,当发生异常算术条件时抛出算术异常类,譬如除数为0的情况,除数除不尽的情况。

一 异常出现场景

1.1 除数为零

// 除数为0, 进行取值运算
@Test
public void test1() {int a = 1;int b = 0;int result = a / b; //java.lang.ArithmeticException: / by zeroSystem.out.println("result is: " + result);System.out.println("aaa");
}
// 除数为0, 进行取模运算
@Test
public void test2() {int a = 1;int b = 0;int result = a % b; //java.lang.ArithmeticException: / by zeroSystem.out.println("result is: " + result);System.out.println("aaa");
}

1.2 除数除不尽

// 除数除不尽
@Test
public void test3() {BigDecimal bigDecimalOne = BigDecimal.valueOf(1);BigDecimal bigDecimalTwo = BigDecimal.valueOf(3);// java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.// 非终止十进制扩展;没有可精确表示的十进制结果。BigDecimal result = bigDecimalOne.divide(bigDecimalTwo);System.out.println("result is: " + result);System.out.println("aaa");
}

tips:整型和浮点型不存在除数除不尽的情况,但是浮点数除法运算有精度损失问题, 同时还要考虑整型和浮点型数据溢出问题

二 异常处理

2.1 处理除数为零

// 除数为0, 进行取值运算
@Test
public void test1001() {int a = 1;int b = 0;// 除法运算需要对除数进行非零校验if (b != 0) {int result = a / b;System.out.println("result is: " + result);}System.out.println("aaa");
}
// 除数为0, 进行取模运算
@Test
public void test1002() {int a = 1;int b = 0;// 除法运算需要对除数进行非零校验if (b != 0) {int result = a % b;System.out.println("result is: " + result);}System.out.println("aaa");
}

2.2 处理除数除不尽

// 除数除不尽
@Test
public void test1003() {BigDecimal bigDecimalOne = BigDecimal.valueOf(1);BigDecimal bigDecimalTwo = BigDecimal.valueOf(3);// 除法运算需要对除数进行非零校验if (bigDecimalTwo.compareTo(BigDecimal.ZERO) != 0) {// 在除法运算中, 指定结果的精度和舍入模式BigDecimal result = bigDecimalOne.divide(bigDecimalTwo, 2, RoundingMode.HALF_UP);System.out.println("result is: " + result);}System.out.println("aaa");
}

http://www.xdnf.cn/news/7046.html

相关文章:

  • Vivado2024.2+Modelsim仿真环境搭建大全(保姆式说明)
  • Three.js 中调试 Raycaster 的方法
  • MySQL8新特性底层原理
  • 淘宝商品主图标题api接口(附API接口文档)
  • Linux - 2.系统命令
  • MySQL 高级查询:JOIN、子查询、窗口函数
  • 搭建一个WordPress网站需要多少成本
  • QML元素 - ZoomBlur
  • 内核链表常用接口的一些理解
  • 2025/517学习
  • No More Adam: 新型优化器SGD_SaI
  • MySQL Workbench 工具导出与导入数据库:实用指南
  • 文件共享ftb
  • 多平台屏幕江湖生存指南
  • MongoDB聚合查询:从入门到精通
  • 现代健康生活养生指南
  • nodejs 文件的复制
  • 【人工智能】微调的艺术:将大模型塑造成你的专属智能助手
  • 大模型技术演进与应用场景深度解析
  • Type-C连接器:数字时代接口革命的终极答案
  • C语言中字符串函数的详细讲解
  • 2025年数字孪生技术最新应用案例:跨领域实践与技术趋势
  • OpenAI新发布Codex的全面解析
  • C语言输入函数对比解析
  • GPIO点亮LED
  • 使用UniApi调用百度地图API的需要注意的地方
  • 基于 jQuery 的轻量级在线画册、电子书、产品目录插件及使用
  • 粒子群算法(PSO算法)
  • RAGFlow Arbitrary Account Takeover Vulnerability
  • 广东省省考备考(第十三天5.17)—言语:中心理解题(听课后强化练习)