Ausnahmen Exceptions

Dr Franke Ghostwriter
Ausnahmen, Exceptions

Hallo zusammen,

ich schaue mir gerade noch mal das Zusatzmaterial zu den Exceptions an hab es an sich verstanden alles, dacht ich.

Nur leider steh ich bei Seite 2 etwas auf dem Schlauch, was die Ausgabe des Quelltextes oben betrifft... Laut BlueJ erscheint folgendes:

MyException: Something strange happend
MyException: Something went wrong
Something strange happend
Something went wrong

Die letzten beiden versteh ich ja, aber wie kommen die ersten beiden Ausgaben zustande?

Und noch eine kleine andere Frage zu diesem Thema: Hab ich das richtig verstanden, dass, wenn im finally-Block ein return oder eine throw-Anweisung steht, dass alle anderen vorher aufgetretenen Ausnahmen und returns ignoriert werden?!? Das Beispiel ist mir etwas unklar irgendwie 😕 (Seite 5 unten)

Schöne Grüße,
ela
 
die Ausgaben der ersten beiden Zeilen kommen durch die folgenden Zeilen zustande:

System.out.println(e);
System.out.println(e2);

Auch wenn du es nicht so geschrieben hast, nehme ich mal an, dass es dich verwundert, dass da vorne dran MyException steht. Der Unterschied zwischen e und e.getMessage() ist der, dass bei ersterem das komplette Objekt inklusive Nachricht abgefragt wird. Beim zweiten Fall wird nur die Nachricht ohne das Objekt abgefragt.

Zu deiner zweiten Frage: Ja, das hast du richtig verstanden. Die Ausnahme "foo-catch" wird nie ausgegeben, da noch ein return -2 im finally-Block folgt.
 
Oben