你会这么好心请帮助我吗?我正在做一个简单的问答游戏,在游戏过程中,要求用户输入答案。它是A,B或C.我想让它包含try / catch异常...
我想要此代码执行的操作是,每当他输入除字符串以外的内容时,都会引发异常(迫使用户再次输入答案)。
这是代码的一部分
Scanner sc = new Scanner(System.in);
String answer = "";
boolean invalidInput = true;
while(invalidInput){
try {
answer = sc.nextLine().toUpperCase();
invalidInput = false;
}
catch(InputMismatchException e){
System.out.println("Enter a letter please");
invalidInput = true;
}
}
现在的问题是,如果我输入一个整数,它将不会抛出任何东西。
谢谢
最佳答案
如果数据与预期不符,只需抛出InputMismatchException
。
Scanner sc = new Scanner(System.in);
String answer = "";
boolean invalidInput = true;
while(invalidInput){
try {
answer = sc.nextLine().toUpperCase();
if (!answer.equals("A") && !answer.equals("B") && !answer.equals("C")) {
throw new InputMismatchException();
}
invalidInput = false;
} catch (InputMismatchException e) {
System.out.println("Enter a letter please");
invalidInput = true;
}
}
请注意,不必为此类控件引发Exception。您可以直接在if代码中处理错误消息。