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);
}