抛出异常错误

时间:2013-12-21 17:33:06

标签: java

我的程序没有编译并向我显示此错误:

System.out.println("Error: "+ e.getMessage());

Scanner scanner = new Scanner(System.in);
try {
    int num = scanner.nextInt();
    if (num != 0) {
        throw new Exception("Not zero");
    }
    System.out.println("I'm happy with the input.");
} catch (InputMismatchException e) //InputMismatchException is never thrown in body of corresponding try statement

{
    System.out.println("Invalid Entry"); 
} catch (Exception e) {
    System.out.println("Error: "+ e.getMessage());
}

1 个答案:

答案 0 :(得分:3)

错误信息非常明确:

  

在相应的try语句

的主体中永远不会抛出InputMismatchException

您正在尝试捕获一个保证不会从try块抛出的异常。这没用,甚至无效。删除catch (InputMismatchException e)块。

实际上,try块可以抛出java.util.InputMismatchException。所以我猜你实际上正在捕获另一个包的InputMismatchException。检查您的导入,并确保导入java.util.InputMismatchException而不是其他com.foo.bar.InputMismatchException

编辑:

错误消息证实了我的想法。您正在捕捉javaapplication9.InputMismatchException,而不是java.util.InputMismatchException。我不确定你为什么定义自己的InputMismatchException。