我有一个程序,我正在尝试添加异常处理。问题是,我写的例外仍然退出程序。基本上我提供用户输入任何int,如果他们给我一个char,例外说他们不能这样做并让他们进入另一个int。但它没有给我这个错误:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at cit130_hw10_q3.Cit130_hw10_q3.main(Cit130_hw10_q3.java:29)
Java结果:1
这是一些代码。感谢您提供的任何帮助。
Scanner input = new Scanner(System.in);
System.out.println("Enter a series of integers." +
"When finished enter 999");
int userInput = 0;
int inputCount = 0;
do{
try{
System.out.println("Enter an integer: ");
userInput = input.nextInt();
addToArray(userInput, inputCount);
}
catch(Exception e){
System.out.println("Only integer values are accepted. Please try again");
}
inputCount++;
}while (userInput != 999);
public static void addToArray(int nextInt , int inputCount){
integerArray[inputCount] = nextInt;
}
答案 0 :(得分:2)
我怀疑你忘了在中间重新编译或运行其他版本的代码,可能是一个不同的文件。如果你像你展示的那样捕获了java.lang.Exception,那就不会发生了。
其他选项是你有input.nextInt();在其他地方,在你没有粘贴的部分。重新确认第29行。
答案 1 :(得分:0)
Excpetion类是所有异常的基类,如果您不确定异常类型,可以通过java.lang.Excpetion捕获它,这非常有效。在你的情况下,请在try catch块中放置一个断点,然后确认抛出异常的点。这将提供一个洞察力,说明为什么它没有被你提到的地方抓住