Wie verhindere ich, dass ein Scanner Ausnahmen auslöst, wenn der falsche Typ eingegeben wird?

Hier ist ein Beispielcode:

import java.util.Scanner;
class In
{
    public static void main (String[]arg) 
    {
    Scanner in = new Scanner (System.in) ;
    System.out.println ("how many are invading?") ;
    int a = in.nextInt() ; 
    System.out.println (a) ; 
    } 
}

Wenn ich das Programm starte und ein gebeint mögen4, dann geht alles gut.

Auf der anderen Seite, wenn ich antwortetoo many es lacht nicht über meinen lustigen Witz. Stattdessen bekomme ich das (wie erwartet):

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:819)
    at java.util.Scanner.next(Scanner.java:1431)
    at java.util.Scanner.nextInt(Scanner.java:2040)
    at java.util.Scanner.nextInt(Scanner.java:2000)
    at In.main(In.java:9)

Gibt es eine Möglichkeit, Einträge zu ignorieren, die nicht ints sind, oder mit "Wie viele fallen ein?" Ich würde gerne wissen, wie man beides macht.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage