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

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");
}

相关文章:

  • nt!MiRemovePageByColor函数分析之脱链和刷新颜色表
  • Linux面试题集合(2)
  • 定扭矩微压痕工具试验台
  • Python绘制克利夫兰点图:从入门到实战
  • 30、WebAssembly:古代魔法——React 19 性能优化
  • OCC笔记:Brep格式
  • Scanner对象
  • Go语言实现链式调用
  • 2025年第三届盘古石杯初赛(智能冰箱,监控部分)
  • Docker数据卷
  • docker迅雷自定义端口号、登录用户名密码
  • Elasticsearch 官网阅读之 Term-level Queries
  • 校园导游大模型介绍
  • 大模型学习:Deepseek+dify零成本部署本地运行实用教程(超级详细!建议收藏)
  • 2025最新软件测试面试题(含答案解析+文档)
  • 2025年EB SCI2区TOP,多策略改进黑翅鸢算法MBKA+空调系统RC参数辨识与负载聚合分析,深度解析+性能实测
  • 鸿蒙北向源码开发: 检查应用接口dts文件api规范性
  • vue使用Pinia实现不同页面共享token
  • win32相关(字符编码)
  • 【文本切割器】RecursiveCharacterTextSplitter参数设置优化指南
  • 专利申请全球领先!去年我国卫星导航与位置服务产值超5700亿元
  • 网警打谣:传播涉刘国梁不实信息,2人被处罚
  • 时隔3年,持续近2小时,俄乌在土耳其谈成了什么?
  • 俄乌直接谈判结束
  • 混乱的5天:俄乌和谈如何从充满希望走向“卡壳”
  • 欠债七十万后,一个乡镇驿站站长的中年心事