Ich bekomme java.util.InputMismatchException jedes Mal, wenn ein Brief eingegeben wird. Ich möchte, dass die "falsche Nachricht" angezeigt wird und nicht abstürzt. Ich habe versucht, x eine Zeichenfolge zu machen und die Eingabe zu analysieren, aber das Problem war immer noch das gleiche. Nicht ganz sicher, wie das geht. Hier ist mein Code:java.util.InputMismatchException in meiner Integer-Validierungsmethode
public static void generateDivision() {
Random rand4 = new Random();
Scanner keyboard6 = new Scanner(System.in);
int random = rand4.nextInt(12);
int random2 = rand4.nextInt(12);
//Following two lines ensures that no remainders are present so the numbers divide evenly.
int n = random * random2;
int k = n/random;
System.out.println(n + "/" + random + " = ?");
int x = keyboard6.nextInt();
checkUserAnswer(k, x);
}
public static void checkUserAnswer(int n, int x) {
try {
if (n == x) {
System.out.println("Correct!");
System.out.println();
}
if (n != x) {
System.out.println("Incorrect!");
System.out.println();
}
} catch (InputMismatchException e) {
System.out.println("Incorrect! That was not a number.");
}
updateStats(n, x);
tryAgain();
}
Wenn es nur einen Weg gab, etwas zu versuchen und dann Ausnahmen zu erfassen und etwas in diesen Fällen zu tun ... fast wie beschrieben [hier] (https://docs.oracle.com/javase/tutorial/essential/ exceptions /) – csmckelvey
Ich habe versucht, einen try-catch-Block zu verwenden, aber es zeigt immer noch den Fehler an statt eine "falsche" Nachricht zu drucken – Navi4458
Das ist nicht der try/catch-Block - das Problem ist, wie Sie es codiert haben. Vielleicht können wir erklären, warum das der Fall ist, wenn Sie uns diesen Code gezeigt haben. – csmckelvey