arithmeticexception是java中不强制捕获的运行时异常,仅在int、long等整数类型除零时抛出;float/double除零返回infinity或nan;应前置校验分母而非依赖try-catch。
ArithmeticException 是什么,为什么只在整数除零时抛出
ArithmeticException 是 Java 中的运行时异常,继承自 RuntimeException,**不强制要求 try-catch**。但它只在整数类型(int、long、short、byte)执行除零操作时触发;浮点数(float、double)除零不会抛异常,而是返回 Infinity 或 NaN。
常见错误现象:
- 写
int result = 10 / 0;→ 直接崩溃,报java.lang.ArithmeticException: / by zero - 误以为
double d = 5.0 / 0.0;也会抛异常 → 实际返回Infinity,后续可能引发逻辑错但不中断
如何安全处理整数除法中的除零风险
核心原则:**不能依赖 catch 来兜底,而应在运算前校验分母**。因为 ArithmeticException 属于程序逻辑缺陷,不是外部不可控异常(如 IO 失败),应预防而非捕获。
实操建议:
立即学习“Java免费学习笔记(深入)”;