java exception auffangen

Hallo,

ich habe folgenden code:

Java:
Scanner tastatur;
tastatur = new Scanner (System.in);
System.out.println("Jahr eingeben: ");
w = Integer.parseInt(tastatur.nextLine());

jetzt möchte ich mit einer while schleife erreichen, dass, wenn man etwas anderes, als das Jahr
eingibt, die Fehlermeldung beim Konvertieren aufgefangen wird, und man so lange aufgefordert wird,
das Jahr erneut einzugeben, bis das Konvertieren erfolgreich ist.

Wie stelle ich das am besten an?

LG
Schweizergeizer
 
[EDIT]public static int parseInt(String s)
throws NumberFormatException[/EDIT]
Also musst du wohl einen try-catch Block basteln, der NumberFormatException "catched" und den Benutzer auffordert, doch eine Integer-Zahl einzugeben.
 
Ich bin zwar auch noch nicht so lange in Java zu Hause, aber ich kenne das Konstrukt aus anderen Sprachen. Sollte ich hier also was übersehen und verwechseln: Bitte korrigieren.

Der "Try"-Block umgibt die regulär ablaufenden Anweisungen, die theoretisch eine Exception auslösen können. Das ist sozusagen der ganz normale Code.
Solange dort keine Exception auftritt, wird der Catch-Block niemals berührt.

In den jeweiligen Catch-Block kommt die Anweisung rein, was passieren soll, wenn im zugehörigen Try-Block eine Exception geworfen wird. Du kannst auch mit mehreren Catch-Blöcken unterschiedliche Exceptions abfangen

kurzes Beispiel

Java:
try{
   AnweisungMitExceptionGefahr();
}
catch(Exception e){
 System.out.println("Fehler");
}

Dieses Beispiel wird JEDE Exception, die auftreten kann, auffangen, "Fehler" ausgeben und das Programm ganz normal weiter ausführen.

Zweites Beispiel

Java:
try{
   AnweisungMitExceptionGefahr();
}
catch(IrgendeineException e){
 System.out.println("Fehler A");
}
catch(EineAndereException e){
 System.out.println("Fehler B");

Dieses Beispiel wird im Falle der ersten Exception "Fehler A" ausgeben und im zweiten Falle "Fehler B". Sollte eine Exception eines anderen Typs geworfen werden (die hier nicht in einem Catch-Block berücksichtigt ist), kommt es zum Programmabbruch.

Man sollte natürlich etwas sinnvolles in den Catch-Block schreiben - es ist auch möglich, diesen Block leer zu lassen und die Exception einfach zu ignorieren (bis auf wenige Ausnahmen). Danach kann es aber natürlich passieren, dass das Programm mit irgendeinem unsinnigen Wert versucht weiter zu arbeiten.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben