Как не дать сканеру генерировать исключения, если введен неправильный тип?

Вот пример кода:

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) ; 
    } 
}

Если я запускаю программу и даю ейint лайк4, тогда все идет хорошо.

С другой стороны, если я отвечуtoo many это не смеется над моей забавной шуткой. Вместо этого я получаю это (как и ожидалось):

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)

Есть ли способ заставить его игнорировать записи, которые не являются целочисленными, или повторять запрос «Сколько вторжения?» Я хотел бы знать, как сделать оба из них.