簡體   English   中英

如何處理錯誤編號格式異常:對於輸入字符串:“”

[英]How to handle error number format exception :For input string: “”

我正在以一種形式進行簡單插入。

  1. 從下拉列表中選擇no_text和no_text_external
  2. 我將no_text和no_text_external的ID保存在另一個表中

dbname_m_db

並想回頭看看。 所以我正在做4測​​試

test1:插入no_text

test2:插入no_text_external

test3:插入no_text和no_text_external

test4:不要同時插入

因此結果是,只有test3成功才能將其查看回來。 而其他3個返回錯誤編號格式異常:對於輸入字符串:“” 我不知道過濾它的最佳方法。 這是我正在工作的代碼。 任何想法?

    public void getDataById(Connection con){

    try{
        ps = con.createStatement();

        rs = ps.executeQuery("SELECT * FROM "+ dbname_m_db +" WHERE id_m_db ='"+ this.getId_m_db() +"' AND status_data ='1'");

        while (rs.next()) {
            this.setNo_text(rs.getString("no_text"));
            this.setNo_text_external(rs.getString("no_text_external"));
        }
            int int_no_text = Integer.valueOf(this.getNo_text());
            int int_no_text_external = Integer.valueOf(this.getNo_text_external());
            this.setNo_text_value(au.getTextById(con, int_no_text));
            this.setNo_text_external_value(au.getTextExternalById(con, int_no_text_external));

    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

為了處理NumberFormatException錯誤,您應該在執行Integer.valueOf()之前驗證String

您可以驗證您的字符串是否為空:

int int_no_text;

if (!this.getNo_text().isEmpty) {
    int_no_text = Integer.valueOf(this.getNo_text());
}

老實說,我並不是很喜歡這種方法,因為既不能驗證字符串是否為null或實際上是否包含整數。

因此,可以利用一個非常好的實用程序類NumberUtils ,並驗證我們是否存在數字:

int int_no_text;

if (NumberUtils.isNumber(this.getNo_text())) {
    int_no_text = Integer.valueOf(this.getNo_text());
}

基本上,這種方式檢查字符串是否為有效的Java數字,因此null和空/空白字符串將返回false。

從表中獲取整數值時,似乎正在傳遞空字符串。 在將其轉換為int之前,我將進行檢查以確保您能從表中獲得他的期望收益

暫無
暫無

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

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