【发布时间】:2015-07-11 07:37:40
【问题描述】:
当整数溢出发生而不是静默失败时,是否可以抛出某种运行时异常。例如
int x = 100000000 * 1000000000;
由于溢出而打印1569325056,我想要的是获得某种运行时异常
【问题讨论】:
当整数溢出发生而不是静默失败时,是否可以抛出某种运行时异常。例如
int x = 100000000 * 1000000000;
由于溢出而打印1569325056,我想要的是获得某种运行时异常
【问题讨论】:
是的,从 Java-8 开始,您可以使用新的 Exact 方法,它会在溢出时抛出异常(java.lang.ArithmeticException: integer overflow)。例如
Math.multiplyExact(100000000, 1000000000);
【讨论】:
if (x > Integer.MAX_VALUE - 1) { throw new Exception("Overflow"); }