NumberFormatException для метода StringUtils.isBlank

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

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

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

1 ответ

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

try {
  ra.setAmtBeforeTax(new BigDecimal(amtBeforeTax))
} catch (NumberFormatException ex) {
  ra.setAmtBeforeTax(BigDecimal.ZERO);
}
Другие вопросы по тегам