Geben Sie den Zaehler ein: Unsinn Wenn die Division nicht funktioniert hat, haben Sie falsche Daten eingeben. Exception in thread "main" java.lang.NumberFormatException: Unsinn at java.lang.Integer.parseInt(Integer.java:409) at java.lang.Integer.parseInt(Integer.java:458) at FinallyUebung.main(FinallyUebung.java:16)
Der try{}
-Block hat eine Ausnahme vom Typ NumberFormatException
ausgelöst,
aber es gab keinen catch{}
-Block dafür.
Also: (1) wurde der finally
-Block ausgeführt und dann
(2) wurde die Ausnahme an den Aufrufer zurückgegeben (in diesem Fall das Java Laufzeitsystem), das (3) die letzten vier Zeilen ausgegeben hat.
Die letzten vier Zeilen werden ein Stack-Protokoll genannt. Sie werden nachher sehen wie Sie sie ausgeben können ohne das Programm zu stoppen. Hier ist ein Teil des Programms:
try { System.out.println("Geben Sie den Zaehler ein:"); ... System.out.println("Geben Sie den Divisor ein:"); ... System.out.println( zahl + " / " + div + " ist " + (zahl/div) ); } catch ( ArithmeticException ex ) { System.out.println ("Sie koennen " + zahl + " nicht durch " + div + " dividieren"); } finally { System.out.println ("Wenn die Division nicht funktioniert hat, haben Sie falsche Daten eingeben." ); } System.out.println("Good-bye" );
Hier sind weitere Beispiele von Output:
Output 1:Geben Sie den Zaehler ein: 26 Geben Sie den Divisor ein: 4 26 / 4 is 6 Wenn die Division nicht funktioniert hat, haben Sie falsche Daten eingeben. Good-byeOutput 2:Geben Sie den Zaehler ein: 26 Geben Sie den Divisor ein: 0 Sie koennen 26 nicht durch 0 dividieren Wenn die Division nicht funktioniert hat, haben Sie falsche Daten eingeben. Good-byeOutput 3:Geben Sie den Zaehler ein: 26 Geben Sie den Divisor ein: Zero Wenn die Division nicht funktioniert hat, haben Sie falsche Daten eingeben. Exception in thread "main" java.lang.NumberFormatException: Zero at java.lang.Integer.parseInt(Integer.java:409) at java.lang.Integer.parseInt(Integer.java:458) at FinallyUebung.main(FinallyUebung.java:19)