Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Ausnahmen / Ausnahmeobjekte / Exercises / Nennen Sie den Fehler

Lösung: Nennen Sie den Fehler

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

Code

sub risky {
    die 'sub failed';
}

{
    risky();

    CATCH {
        default {
            say .^name;
            say .message;
        }
    }
}

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

Ausgabe

X::AdHoc
sub failed

Kommentare

  1. Das die geschieht innerhalb von risky, aber die Ausnahme wandert hinauf zum Aufrufer. Das CATCH in dem Block, der risky aufgerufen hat, behandelt sie, und so funktioniert Fehlerbehandlung gewöhnlich: Der Fehlschlag und seine Behandlung müssen nicht in derselben Routine liegen.

  2. Ein schlichtes die mit einer Zeichenkette erzeugt eine X::AdHoc-Ausnahme, die .^name meldet, und .message liefert den an die übergebenen Text.

Kursnavigation

Nennen Sie den Fehler   |   Passen Sie den Typ ab