其他分享
首页 > 其他分享> > 如何捕获Spring MVC中的Integer溢出错误?

如何捕获Spring MVC中的Integer溢出错误?

作者:互联网

我使用的是Spring MVC 3.0.5. Spring愉快地忽略了映射到Integer的字段的Integer溢出.如何报告正确的错误?

解决方法:

它不是Spring问题,它是一个普遍的Java问题. Java没有像C这样的溢出问题,但它包含了整数.

@Test
public void demoIntegerWrapp(){
  int value = Integer.MAX_VALUE;
  value += 1;
  assertEquals(Integer.MIN_VALUE, value);
}

因此,最好的想法是你可以使用long进行计算,并检查结果是否在整数范围内,否则抛出异常.

public int overflowSaveAdd(int summand1, int summand2) {
  long sum = ((long) summand1) + ((long) summand2);
  if (sum < Integer.MIN_VALUE ) || (sum > Integer.MAX_VALUE) {
     throw new RuntimeException(sum + " is too big for integer");
  } else {
     return (int) sum;
  }
}

标签:java,validation,integer-overflow
来源: https://codeday.me/bug/20190903/1797143.html