异常处理解析int和空字符串

时间:2016-08-12 15:41:30

标签: java string exception int parseint

   name = full_name_input.getText(); 
   Fname = father_name_input.getText();
   cnic = father_cnic_input.getText();
   DOB = Integer.parseInt(DOB_input.getText());
   Class_V = Integer.parseInt(class_input.getText());
   prsnt_add = present_add_input.getText();
   city = city_input.getText();
   province = radio_text;

   if(name.equals("") || Fname.equals("") || cnic.equals("") || DOB==0 || Class_V==0 || prsnt_add.equals("") || city.equals("") ||  province.equals(""))
   {
       Toolkit.getDefaultToolkit().beep(); 
       JOptionPane.showMessageDialog(null, "Please fill all fields ! \n");
   }
这里的 radio_text实际上是从单选按钮输入的,它发出错误

线程“AWT-EventQueue-0”中的异常java.lang.NumberFormatException:对于输入字符串:“”

实际上我想确保用户没有任何一个jfield保持为空 如果任何字段仍然未定义,则会显示一个弹出窗口,请填写所有字段 但是当出生日期或类别字段或两者仍然未被用户解冻时,它会出现在第一段中提到的错误

3 个答案:

答案 0 :(得分:0)

我打赌你在这里有问题:

promiseResourcesAccountList.then(function(result){
  ///whatever processing
  //return a promise
  return promiseResourcesEditUser()
}).then(function(){
  return anotherPromise();
}).then(function(){
   //update scope here
});

DOB = Integer.parseInt(DOB_input.getText()); Class_V = Integer.parseInt(class_input.getText()); DOB_input(或甚至两者)class_input都会返回空字符串。您应该捕获该异常并正确处理它:

getText()

答案 1 :(得分:0)

在您尝试设置字段后,您正在检查字段,但错误发生在此之前。例如,如果DOB_input的文本为“”,那么DOB会在您看到它为空之前尝试解析(Integer.parseInt()不能处理类似的字符串)时会抛出错误。如果要保留if语句,则必须将其移到设置值的行上方。但是,要做到这一点,你需要调整一下,以便检查jfields的值。像:

if(full_name_input.getText().equals("") || father_name_input.getText().equals("") ..... )
{
   Toolkit.getDefaultToolkit().beep(); 
   JOptionPane.showMessageDialog(null, "Please fill all fields ! \n");
}

答案 2 :(得分:0)

从String解析数字时出现问题。 你检查过这行发生了什么? 我想在这里:

DOB = Integer.parseInt(DOB_input.getText());    Class_V = Integer.parseInt(class_input.getText());