捕获异常时无限循环

时间:2016-02-18 02:46:44

标签: 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");
     }
  }

我得到的结果是错误字符串的无限循环。我做错了什么?我试图抓住错误的例外吗?

1 个答案:

答案 0 :(得分:2)

“当扫描程序抛出InputMismatchException时,扫描程序将不会传递导致异常的标记,因此可以通过其他方法检索或跳过该标记。”Oracle