Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Ausnahmen / Ausnahmen mit try abfangen

Quiz — try

Was gibt das folgende Programm aus?

my $r = try {
    die 'Boom!';
    say 'inside';
};

say 'outside';
1outside
0inside
0inside und dann outside
0Boom!
0ein Fehler

Hier geschehen zwei Dinge. Erstens bricht die den Rest des try-Blocks sofort ab, die Zeile say 'inside' wird also nie erreicht — aus dem Block wird nichts ausgegeben. Zweitens hält das Programm selbst nicht an, weil try die Ausnahme fängt: Die Ausführung geht hinter dem Block weiter, und say 'outside' läuft ganz normal. Die einzige ausgegebene Zeile ist also outside. ($r wäre undefiniert, und die Meldung Boom! läge in $! bereit, falls Sie nachsähen.)

Kursnavigation

Lösung: Versuch oder Standardwert   |   Der CATCH-Phaser