[Java] Frage

Cyberm@ster

New member
Hi, ich bin gerade dabei mich für einen Test vorzubereiten und bin dabei auf folgendes Beispiel gestoßen:

Code:
public static void main (String[] args)
{
    try
    {
        System.out.print ("A");
        int value = Integer.parseInt ("8A");
        System.out.print ("B");
    }
    catch (NumberFormatException exception)
    {
        System.out.print ("C");
        return;
    }
    finally
    {
        System.out.print ("D");
    }
    System.out.print ("E");
}
Die Frage lautet: "Was ist die Ausgabe?" Die korrekte Antwort ist laut Verbesserung "ACE".

Nun habe ich aber an mehreren Stellen gelesen, dass der finally { } Block immer ausgeführt wird (es sei denn es kommt vorher zu einem Crash der JVM oder das Programm wird mit System.exit() beendet)

Ich habe gedacht die Antwort sei "ACD", da erst die erste Linie im try { } Block ausgeführt wird, parseInt wirf eine Exception, catch { } gibt C aus, finally { } D und anschliessend wird main durch das return im catch { } beendet.

Wo liege ich falsch?

P.S.: Könnte ein Mod den Titel bitte zu "[Java] Frage zu try - catch - finally" o. Ä. umbenennen? Danke im Voraus
 
Zuletzt bearbeitet:

Thunderb0lt

New member
Gar nicht, die Musterlösung ist falsch. Sieht man ja auch, wenn man das Programm einfach mal ausführt ;)
 
Oben