NumberFormatException для метода StringUtils.isBlank - PullRequest
0 голосов
/ 12 февраля 2019

Я получаю NumberFormatException, хотя у меня есть StringUtils.isBlank(), и я также добавил проверку на неразрывный символ пробела, как указано в коде ниже:

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

Тем не менее я получаю числоисключение форматирования в приведенном выше фрагменте кода.У меня нет контроля над amtBeforeTax, это поток данных, которые я получаю, и просто устанавливаю его для какого-то другого объекта.Я хотел знать, что именно за предисловие я возьму здесь, чтобы избежать исключения.

1 Ответ

0 голосов
/ 12 февраля 2019

Один из способов решить эту проблему - поймать NumberFormatException, эффективно используя конструктор BigDecimal для выполнения проверки вместо написания правил самостоятельно:

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