Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Reactief programmeren / await / Exercises / Wacht op een fout
Oplossing: Wacht op een fout
Hier is een mogelijke oplossing voor de taak.
Code
my $p = start { die 'boom' };
try {
await $p;
CATCH {
default { say "caught: {.message}" }
}
}🦋 Je kunt de broncode vinden in het bestand await-failure.raku.
Uitvoer
caught: boomOpmerkingen
Het blok van de promise werpt, dus de promise is verbroken. De exceptie gaat niet verloren — ze wordt vastgehouden tot iemand de promise afwacht.
await $pwerpt haar daar meteen opnieuw, waar deCATCH-faser haar als elke gewone exceptie afhandelt. Zo duiken fouten in achtergrondwerk op waar je op het resultaat wacht.