java - 捕获异常时无限循环

标签 java exception while-loop try-catch infinite-loop

我正在尝试从 System.in 获取一个整数,并且我想捕获最终的错误。这是代码:

int dim;
boolean done = false;

while(!done)
  {
     try
     {
        dim = in.nextInt();
        done=true;
     }
     catch(InputMismatchException e)
     {
        System.out.println("I need an integer");
     }
  }

我得到的结果是错误字符串的无限循环。我做错了什么?我是否试图捕获错误的异常?

最佳答案

“当扫描器抛出 InputMismatchException 时,扫描器将不会传递导致异常的 token ,以便可以通过其他方法检索或跳过它。” Oracle

关于java - 捕获异常时无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35471870/

相关文章:

java - 测试 Wikixmlj 时出错

java - Glassfish v3 的表单例份验证异常

c# - 您如何查看 VS2015 中的 Intellisense 抛出哪些异常?

当我在代码中放入 while 循环时,JavaFX GUI 不会运行,但在删除时会运行

python -> time a while 循环一直在运行

ruby - Rubocop 规则 : Never use 'do' with multi-line 'while

java - 如何使 JFreeChart 保持纵横比?

java - 尝试从URL Java播放声音

java - 如何为多个变量设置相同的函数属性?

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?