当数字溢出时抛出异常

6

在整数溢出发生时,是否有可能抛出某种运行时异常而不是默默失败。例如:

int x = 100000000 * 1000000000;

由于溢出,打印1569325056,我希望得到某种运行时异常。

1个回答

14

是的,从Java-8开始,您可以使用新的Exact方法,在溢出时会抛出异常(java.lang.ArithmeticException:integer overflow)。例如:

Math.multiplyExact(100000000, 1000000000);

2
@Trobbins 希望这次没问题 :) - sol4me
为什么不检查下一个值是否会导致溢出?if (x > Integer.MAX_VALUE - 1) { throw new Exception("Overflow"); } - user5063151

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接