有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

StringUtils上的java NumberFormatException。isBlank方法

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

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

我仍然在上面的代码中得到一个数字格式的异常。我没有对amtBeforeTax的控制权,它是我正在获取的数据流,只是将它设置为其他对象。我想知道为了避免这个例外,我会在这里做什么样的准备


共 (1) 个答案

  1. # 1 楼答案

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

    try {
      ra.setAmtBeforeTax(new BigDecimal(amtBeforeTax))
    } catch (NumberFormatException ex) {
      ra.setAmtBeforeTax(BigDecimal.ZERO);
    }