ArithmeticException 报错通常由整数除零或取模零引起,需检查报错行中 / 或 % 右侧操作数是否为变量且值为0,并追溯其来源(硬编码、用户输入、计算结果或外部接口),浮点数除零不会触发该异常。

直接看控制台报错堆栈里的“at 类名.方法名(文件名:行号)”,那一行就是出问题的地方。
看异常信息里的关键线索
ArithmeticException 报错时,消息通常是 / by zero 或 % by zero。这说明问题出在整数除法或取模运算上。重点盯住报错行中带 / 或 % 的表达式,尤其是右边那个操作数(除数或模数)是不是变量——它很可能就是 0。
检查变量来源是否可控
定位到出问题的那行后,顺着往上查这个除数/模数从哪来:
- 是硬编码的字面量?比如
10 / 0→ 立刻修正 - 是用户输入?比如
Scanner.nextInt()或 Web 表单参数 → 必须加校验 - 是计算结果?比如
int divisor = a - b;→ 检查 a 和 b 的取值逻辑,是否可能相等 - 是外部接口返回?比如 JSON 解析后的字段 → 需做非空和范围判断,不能默认安全
用调试器快速验证
在疑似出问题的除法语句前打个断点,运行 Debug 模式:
立即学习“Java免费学习笔记(深入)”;
- 停住后,鼠标悬停看除数变量的实时值
- 如果值是 0,问题确认;不是 0,再往前看它是怎么被赋值的
- 配合“Variables”面板,逐层展开对象属性或方法调用链,追根溯源
别忽略浮点数的干扰项
注意:float 和 double 除零不会抛 ArithmeticException,而是返回 Infinity 或 NaN。如果你看到异常,基本可以确定是 int、long、short 或 byte 类型在作怪。不用在 float/double 除法上浪费排查时间。


















