Java:异常处理无法正常工作

时间:2013-12-10 06:23:41

标签: java input exception-handling

我有一个程序,我正在尝试添加异常处理。问题是,我写的例外仍然退出程序。基本上我提供用户输入任何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;
}

2 个答案:

答案 0 :(得分:2)

我怀疑你忘了在中间重新编译或运行其他版本的代码,可能是一个不同的文件。如果你像你展示的那样捕获了java.lang.Exception,那就不会发生了。

其他选项是你有input.nextInt();在其他地方,在你没有粘贴的部分。重新确认第29行。

答案 1 :(得分:0)

Excpetion类是所有异常的基类,如果您不确定异常类型,可以通过java.lang.Excpetion捕获它,这非常有效。在你的情况下,请在try catch块中放置一个断点,然后确认抛出异常的点。这将提供一个洞察力,说明为什么它没有被你提到的地方抓住