Java:异常处理不起作用

Java:异常处理不起作用,java,input,exception-handling,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.

我有一个程序,我正试图添加异常处理。问题是,我写的异常仍然存在于程序中。基本上,我允许用户输入任何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;
}

我怀疑您忘了在这段代码之间重新编译,或者正在运行其他版本的代码,可能是一个与此不同的文件。如果像您所展示的那样捕获java.lang.Exception,则不会发生这种情况


另一个选项是您有input.nextInt();在其他地方,也在一个你没有粘贴在这里的部分。再次确认第29行。

Excpetion类是所有异常的基类,如果您不确定异常类型,可以通过java.lang.Excpetion捕获它,这非常有效。在您的情况下,请在try-catch块中放置一个断点,然后确认引发异常的点。这将让您了解为什么在您提到的地方没有捕获到它

清除项目,重新编译并重试。还要确保
Exception
java.lang.Exception
而不是其他东西。您的
addToArray
函数可能会更清楚地说明您所面临的问题。。请显示该代码..我猜你的意思是while(inputCount!=999)?@VikasV,它将显示在堆栈跟踪中。堆栈跟踪指示的是main中的问题,而不是函数中的问题。另外,请注意,如果
nextInt
抛出
inputmaschException
,则不会使扫描仪前进。再次调用
nextInt
将再次尝试重新读取相同的非
int
。您需要在
catch
块中调用
next()
,以推进令牌。通过额外的调整,您的代码在我的计算机上运行良好。我认为RC是对的。那最好以评论的形式发布。根据堆栈溢出准则,你是正确的。这应该是一个评论