Heim >Java >javaLernprogramm >Wie vermeide ich Endlosschleifen bei der Behandlung von InputMismatchException in einem Try-Catch-Block?
Try/Catch mit InputMismatchException Endlosschleifenproblem
Bei der Implementierung von Code, der Benutzer dazu auffordert, Ganzzahleingaben bereitzustellen, ist die Verwendung eines Try/Catch-Blocks sinnvoll gängige Praxis. Es ist jedoch wichtig, Ausnahmen korrekt zu behandeln, um Endlosschleifen zu vermeiden.
Im bereitgestellten Beispiel wird eine Ausnahme innerhalb einer do-while-Schleife abgefangen. Wenn eine InputMismatchException ausgelöst wird, wird die Meldung „Error!“ angezeigt. Die Meldung wird wiederholt angezeigt, ohne dass nachfolgende Schleifeniterationen ausgeführt werden. Dies liegt daran, dass der Eingabepuffer in einem inkonsistenten Zustand bleibt und der Fehler nicht einfach durch das Abfangen der Ausnahme behoben werden kann.
Um dieses Problem zu beheben, sind die folgenden Schritte erforderlich:
Hier ist ein modifizierter Codeausschnitt, der diese Korrekturen demonstriert:
catch (InputMismatchException e) { System.out.println("Error!"); input.next(); // Clear the input buffer }
Außerdem ist es Es empfiehlt sich, explizite Catch-Blöcke für bestimmte Ausnahmen wie InputMismatchException zu verwenden, um diese angemessen zu behandeln.
Das obige ist der detaillierte Inhalt vonWie vermeide ich Endlosschleifen bei der Behandlung von InputMismatchException in einem Try-Catch-Block?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!