while循环忽略try-catch

时间:2014-10-19 18:29:45

标签: java loops exception

我有一个while循环运行,以确保用户输入正确的信息。但是,它不会通过循环再次询问用户。例如,如果我输入" k"当它正在寻找一个整数时,它不会通过任何程序,而是什么都不输出而且程序被卡住了。我找到了a question similar to this problem,但提供的解决方案仍然不起作用。在我的程序跳过while循环并继续之前,现在它被抓住永远无所事事。

while (errorLoop) {
    try { 
        if (kb.hasNextInt()) {
            Player.setBet(kb.nextInt()); 
        } 
    } 
    catch (InputMismatchException e) {
        System.out.println("Please enter a positive number."); 
    } 
    if (Player.getBet() > 0) { 
        errorLoop = false; 
    } 
}

1 个答案:

答案 0 :(得分:1)

你的代码没有忽略try-catch,它只是不能抛出InputMismatchException,因为在调用kb.nextInt()之前你要确保下一个输入可以被解析为int(通过检查{{1}是真的)。​​

您可以删除try-catch:

kb.hasNextInt()