Bucle sin fin mientras se usa el bloque "tratar y atrapar" dentro de un "bucle while"

Mi programa tiene un bucle sin fin, cuando usointenta y atrapa bloquear en unmientras bucle.

import java.util.*;
class Try
{
    public static void main(String args[])
    {
        Scanner sc=new Scanner(System.in);
        while(true)
        {
            try {
                System.out.println("Enter a no ");
                int s=sc.nextInt();
            } catch(Exception e) {
                System.out.println("Invalid input try again");
            }
        }
    }
}

Cuando ingreso un número entero, funciona bien y solicita otra entrada, pero cuando ingreso un carácter, va para un bucle sin fin. ¿Por qué esto es tan?

Respuestas a la pregunta(4)

Su respuesta a la pregunta