title: try/catch with InputMismatchException creates infinite loop
body: <p>So I'm building a program which takes ints from user input. I have what seems to be a very straightforward try/catch block which, if the user doesn't enter an int, should repeat the block until they do. Here's the relevant part of the code:</p>
  
  <pre><code>import java.util.InputMismatchException;
  import java.util.Scanner;
  
  
  public class Except {
      public static void main(String[] args) {
          Scanner input = new Scanner(System.in);
          boolean bError = true;
          int n1 = 0, n2 = 0, nQuotient = 0;
  
          do {
              try {
                  System.out.println("Enter first num: ");
                  n1 = input.nextInt();
                  System.out.println("Enter second num: ");
                  n2 = input.nextInt();
                  nQuotient = n1/n2;
                  bError = false;
              } 
              catch (Exception e) {
                  System.out.println("Error!");
              }
          } while (bError);
  
          System.out.printf("%d/%d = %d",n1,n2, nQuotient);
      }
  }
  </code></pre>
  
  <p>If I enter a 0 for the second integer, then the try/catch does exactly what it's supposed to and makes me put it in again. But, if I have an InputMismatchException like by entering 5.5 for one of the numbers, it just shows my error message in an infinite loop. Why is this happening, and what can I do about it? (By the way, I have tried explicitly typing InputMismatchException as the argument to catch, but it didn't fix the problem.</p>