簡體   English   中英

StringUtils.isBlank 方法上的 NumberFormatException

[英]NumberFormatException on StringUtils.isBlank method

盡管我有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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM