Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Ausnahmen / Ausnahmen mit try abfangen / Exercises / Fangen Sie den Fehler ab

Lösung: Fangen Sie den Fehler ab

Hier ist eine mögliche Lösung der Aufgabe.

Code

my $ok = try { 6 * 7 };
say $ok;

my $bad = try { die 'broken' };
say $bad.defined;
say $!.message;

🦋 Du findest den Quellcode in der Datei catch-the-error.raku.

Ausgabe

42
False
broken

Kommentare

  1. Läuft der Block ohne Fehler, ergibt try schlicht den Wert des Blocks, $ok enthält also 42.

  2. Das die im zweiten Block wirft eine Ausnahme, dieser Block ergibt also einen undefinierten Wert, und $bad.defined ist False.

  3. Die gefangene Ausnahme liegt in der besonderen Variablen $!, und $!.message liefert den ihr übergebenen Text, broken.

Kursnavigation

Fangen Sie den Fehler ab   |   Wenn nichts schiefgeht