Wie halte ich einen Scanner zu werfen Ausnahmen, wenn die falschen Typs eingetragen ist?

Hier einige Beispiel-code:

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 ausführen, und geben Sie es ein int wie 4, dann geht alles in Ordnung.

Auf der anderen Seite, wenn ich Antwort too many es nicht zum lachen in meinem lustigen Witz. Stattdessen bekomme ich(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 einen Weg, um es zu ignorieren-Einträge, die nicht von ints oder re-prompt mit "Wie viele sind Invasion?" Ich würde gerne wissen, wie diese beiden.

InformationsquelleAutor David | 2010-03-22

Schreibe einen Kommentar