Manipulação de exceção, captura faz com que o loop pare

Eu tenho um arquivo que eu preciso ler, imprimir os inteiros, pegar exceção e continuar com o próximo número inteiro para exibir e assim por diante até que não haja mais inteiros.

O arquivo contém: 12 5 sd 67 4 cy

Eu quero mostrar:

12
5
Erro de entrada
67
4
Erro de entrada

No entanto, só me dá 12, 5, seguido de erro de entrada, e ele pára. Eu tentei colocar tudo em um loop while e loops interminavelmente com a exceção de entrada.

public static void readNumbers()
 {

    File inputFile = new File ("C:/users/AC/Desktop/input.txt");
     try
     {
         Scanner reader = new Scanner(inputFile);
         while(reader.hasNext())
         {
                int num = reader.nextInt();
                System.out.println("Number read: " +num);
            } 
      }
      catch (InputMismatchException e)
      {
                System.out.println("Input error ");
      }
      catch (FileNotFoundException e2)
      {
          System.out.println("File not found!");
      }    
  }

 }

O que estou perdendo para que o loop continue lendo o próximo int e assim por diante?

questionAnswers(3)

yourAnswerToTheQuestion