当我编写下面的代码时,我打算从键盘输入双值。如果输入不是double值,则会弹出一个对话框窗口以再次强制输入。
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 );
但是,当我输入无效数字时,对话框窗口从不显示。出了什么问题?
答案 0 :(得分:2)
您必须抓住NumberFormatException
,查看文档中的Double#parseDouble。
答案 1 :(得分:1)
InputMismatchException
的另一个nextxxxx()
函数读取特定类型时,会抛出 Scanner
。但是如果字符串不包含可解析的Double.parseDouble(String)
,NumberFormatException
将抛出double
。