当前位置: 代码迷 >> java >> StringUtils.isBlank 方法上的 NumberFormatException
  详细解决方案

StringUtils.isBlank 方法上的 NumberFormatException

热度:122   发布时间:2023-07-26 14:31:53.0

尽管我有StringUtils.isBlank()并且我还添加了一个不可破坏的空白字符的检查,但我收到了 NumberFormatException,如下面的代码中所述:

if (isBlank(amtBeforeTax) || amtBeforeTax.matches("^[\\p{Z}]*$")) {
                ra.setAmtBeforeTax(BigDecimal.ZERO);
            } else {
                ra.setAmtBeforeTax(new BigDecimal(amtBeforeTax));
            }

我仍然在上面的代码中遇到数字格式异常。 我无法控制amtBeforeTax ,这是我正在获取的数据流,只是将其设置为其他对象。 我想知道我将在这里接手的前兆究竟是什么,以避免出现异常。

解决它的一种方法是捕获NumberFormatException ,有效地使用BigDecimal构造函数来执行验证,而不是自己编写规则:

try {
  ra.setAmtBeforeTax(new BigDecimal(amtBeforeTax))
} catch (NumberFormatException ex) {
  ra.setAmtBeforeTax(BigDecimal.ZERO);
}
  相关解决方案