如何处理这个InputMismatchException?

时间:2014-12-02 07:51:11

标签: java inputmismatchexception

在下面的代码中,即使在我提供输入之前,我也会在第80行获得InputMismatchException。这是为什么?

try {
    loop:while(true)
    {
        choice=sc.nextInt();
        switch (choice) {
            case 1: 
                term=3;
                break loop;
            case 2:
                term=6;
                break loop;
            default:
                System.out.println("Invalid Input.. Enter again");
                choice=sc.nextInt();
        }
    } 
}
catch (InputMismatchException e2) {
    System.out.println("Wrong Format!! Enter a number");
    choice=sc.nextInt();  //line 80
}

1 个答案:

答案 0 :(得分:1)

消耗行尾:

catch (InputMismatchException e2) {
    System.out.println("Wrong Format!! Enter a number");
    sc.nextLine(); // add this
    choice=sc.nextInt();  //line 80
}

此外,您的循环中可能不应该有两个choice=sc.nextInt();

你想把try-catch放在循环中,以便在捕获到异常后留在循环中。