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: boomKommentare
Der Block des Promise wirft, das Promise ist also gebrochen. Die Ausnahme geht nicht verloren — sie wird festgehalten, bis jemand das Promise abwartet.
await $pwirft sie genau dort erneut, wo derCATCH-Phaser sie wie jede gewöhnliche Ausnahme behandelt. So tauchen Fehler in Hintergrundarbeit dort auf, wo Sie auf das Ergebnis warten.