Demander à l'utilisateur de saisir l'apport de nouveau après qu'il donne une mauvaise valeur pour l'Entrée. InputMismatchException?

J'ai créé la classe suivante pour la Saisie de l'âge d'un utilisateur et l'affichage approprié d'infos dans la console.

Sur l'exécution de ce programme , la console demande "s'il vous Plaît Entrez votre Age : "

Si l'utilisateur entre un nombre Entier, par exemple: 25 , exécutés classe affiche "Votre âge : 25" dans la console.

Si l'utilisateur entre un nombre fractionnaire , la console affiche:
L'âge doit être un nombre Entier
Veuillez Entrer votre Âge:

Mais je ne suis pas en mesure d'entrer quoi que ce soit par le biais du clavier quand je place mon curseur à côté de "Entrez votre Age: ".

Je veux que l'utilisateur puisse entrer dans son âge nouveau, & si il entre dans un entier, il affiche la bonne sortie, mais s'il entre dans un non-entier la console devrait lui demander de nouveau pour l'âge.

Si vous regardez mon code je suis réglage de la valeur de la variable " âge " par l'appel de la fonction checkAge() à l'intérieur de l'autre bloc dans ma fonction principale.

Quelqu'un peut-il me dire où je vais mal?

public class ExceptionHandling{

    static Scanner userinput = new Scanner(System.in);

    public static void main(String[] args){ 
        int age = checkAge();

        if (age != 0){
            System.out.println("Your age is : " + age);         
        }else{
           System.out.println("Age should be an integer");
           age = checkAge();
        }
    }

    public static int checkAge(){
        try{            
            System.out.print("Please Enter Your Age :");
            return userinput.nextInt();
        }catch(InputMismatchException e){
            return 0;
        }
    }
}