2013-11-25 49 views
0

当我在编写下面的代码时,我打算从键盘输入双精度值。如果输入不是双精度值,将会弹出一个对话框来强制再次输入。GUI中的异常处理:无法显示消息对话框

boolean continueLoop=true; 
    do 
    { 
     try 
     { 
      String firstNumber = JOptionPane.showInputDialog("Enter first floating-point value"); 
      number1 = Double.parseDouble(firstNumber); 
      continueLoop=false; 
     } 
     catch (InputMismatchException inputMismatchException) 
     { 
      JOptionPane.showMessageDialog(null,"Please type in a valid, real number","Input Error",JOptionPane.PLAIN_MESSAGE); 
     } 
    }while (continueLoop); 

但是,当我输入无效数字时,对话窗口从不显示。出了什么问题?

回答

1

InputMismatchException当您尝试使用Scanner的另一个nextxxxx()函数读取特定类型时,会引发此错误。但Double.parseDouble(String)将抛出NumberFormatException如果该字符串不包含可解析的double,您将需要赶上。