我正在为我的班级做作业。我写了一个方法来引发一个错误,如果输入了一个不正确的整数,我试图给出一个错误消息,当一个字符串被输入,而不是一个int,但我不知道如何。我不允许使用parsInt或内置的字符串方法。我会很感激任何帮助。当输入字符串而不是int时抛出错误
int playerNum = stdin.nextInt();
while (invalidInteger(playerNum) == -1 || invalidInteger(playerNum) == -2 || invalidInteger(playerNum) == -3)
{
if(invalidInteger(playerNum) == -1)
{
System.out.println("Invalid guess. Must be a positive integer.");
System.out.println("Type your guess, must be a 4-digit number consisting of distinct digits.");
count++;
}
if(invalidInteger(playerNum) == -2)
{
System.out.println("Invalid guess. Must be a four digit integer.");
System.out.println("Type your guess, must be a four digit number consisting of distinct digits.");
count++;
}
if(invalidInteger(playerNum) == -3)
{
System.out.println("Invalid guess. Must have distinct digits.");
System.out.println("Type your guess, must be a four digit number consisting of distinct digits.");
count++;
}
playerNum = stdin.nextInt();
}
增加了这个片段来捕捉异常。感谢almas shaikh。当你输入字符串,而不是整数的
try {
int playerNum = scanner.nextInt();
//futher code
} catch (InputMismatchException nfe) {
System.out.println("You have entered a non numeric field value");
}
扫描器抛出InputMismatchException时:
try {
int playerNum = scanner.nextInt();
//futher code
} catch (InputMismatchException nfe) {
System.out.println("You have entered a non numeric field value");
}
如果你使用nextInt,你不能得到一个'String'。 – Jens 2014-11-06 06:31:59
代码片段[不适用于发布示例代码块](http://meta.stackoverflow.com/questions/271647/stack-snippets-being-misused)。改为使用**代码示例{} **按钮。 – Radiodef 2014-11-06 07:01:10