Versuchen Sie zu fangen und Benutzereingaben

Dies ist eine Frage für eine Hausaufgabe mit einem try/catch-block. Für einen try/catch-ich weiß, dass Sie den code, den Sie testen möchten, in den try-block und dann den code, den Sie wollen, zu passieren, in Reaktion auf eine Ausnahme im catch-block aber wie kann ich es in diesem speziellen Fall?

Den der Benutzer eingibt, eine Zahl, die gespeichert ist in userIn aber wenn er in einem Brief oder irgendetwas anderes als eine Zahl, die ich will, es zu fangen. Die eingegebene Zahl wird in einer switch-Anweisung nach dem try - /catch.

Scanner in = new Scanner(System.in);

try{

int userIn = in.nextInt();

}

catch (InputMismatchException a){

    System.out.print("Problem");

}

switch(userIn){...

Wenn ich versuche zu kompilieren, gibt es das symbol nicht gefunden, für die Nummer der Zeile entspricht dem Anfang der switch-Anweisung switch(userIn){. Ein paar Recherchen später finde ich, dass die userIn nicht gesehen werden kann, die außerhalb des try-block und das verursacht den Fehler. Wie kann ich die test-userIn für die richtige Eingabe sowie die switch-Anweisung siehe-userIn, die nach der try/catch?

  • Das problem ist, dass "int " userIn" ist definiert in den scope von Ihrer "try {}". Es ist nicht sichtbar außerhalb dieses Bereichs. LÖSUNG: verschieben Sie einfach "int-userIn" BEVOR Ihr "versuchen".
InformationsquelleAutor Stickandjab | 2013-09-06
Schreibe einen Kommentar