如何进行try catch InputMismatchException在错误消息后再次询问用户输入

时间:2018-02-03 03:48:37

标签: java arrays exception error-handling

我想让用户输入一个仅在0-100之间的成绩,但我还希望他们在被要求输入数字等级时输入一个字母/单词时会抛出一条错误消息。

我试图让它循环并不断要求用户输入成绩,但是当我运行程序时,异常没有被捕获并且运行时错误仍然发生。

任何人都可以解释为什么会这样,并指导我如何解决它,这是我的代码:

System.out.println("Enter Grade #3 for: " + sArray[x].studentName);
boolean loop = false;
while (!loop) {
  try {
      int temp3 = kbReader.nextInt();
      while (temp3 < 0 || temp3 > 100) {
          System.out.println("Error: Please enter a valid grade between 0-100:");
          temp3 = kbReader.nextInt();
      }
      if (temp3 >= 0 && temp3 <= 100) {
          sArray[x].grade3 = temp3;
          loop = false;
      }
  } catch (Exception e) {
      System.out.println("Error please enter an integer!");
      kbReader.reset();
      kbReader.nextInt();

  }
}

0 个答案:

没有答案