我正在尝试运行一个catch块,但它一直在说是一个标识符。欢迎任何帮助。这个方法的对象(它是一个主要的,所以我可以测试它)是获得一个有效的整数值。如果该值无效,则应循环直到输入有效数字。我尝试使用while循环执行此操作,并尝试使用catch来修复任何异常。谢谢
import javax.swing.JOptionPane;
import java.lang.Integer;
public class test
{
public static void main (String[] args) throws NumberFormatException
{
String input;
boolean x = false;
int number;
input = JOptionPane.showInputDialog("Enter an integer: "); //creates input box for user to enter integer value
number = Integer.parseInt(input);
try
{
while (number < -2147483648 && number > 2147483647)
{
x = false;
number = Integer.parseInt(input);
System.out.println("You selected: " + number)
}
}
catch (NumberFormatException e)
{
input = JOptionPane.showInputDialog("Enter a valid integer: ");
}
}
}
答案 0 :(得分:3)
您没有在NumberFormatException
声明中为catch
定义名称(标识符)。
你需要:
catch (NumberFormatException e)
{
...
}
答案 1 :(得分:0)
关于您的号码问题: 数字&lt; -2147483648&amp;&amp;数字&gt; 2147483647 那些是整数的最小值和最大值,所以也许使用long类型而不是int会有所帮助。