Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Reaktive Programmierung / await / Exercises / Warten Sie auf einen Fehler

Lösung: Warten Sie auf einen Fehler

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

Code

my $p = start { die 'boom' };

try {
    await $p;
    CATCH {
        default { say "caught: {.message}" }
    }
}

🦋 Du findest den Quellcode in der Datei await-failure.raku.

Ausgabe

caught: boom

Kommentare

  1. Der Block des Promise wirft, das Promise ist also gebrochen. Die Ausnahme geht nicht verloren — sie wird festgehalten, bis jemand das Promise abwartet.

  2. await $p wirft sie genau dort erneut, wo der CATCH-Phaser sie wie jede gewöhnliche Ausnahme behandelt. So tauchen Fehler in Hintergrundarbeit dort auf, wo Sie auf das Ergebnis warten.

Kursnavigation

Warten Sie auf einen Fehler   |   Web-Programmierung