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: boom

Opmerkingen

  1. Het blok van de promise werpt, dus de promise is verbroken. De exceptie gaat niet verloren — ze wordt vastgehouden tot iemand de promise afwacht.

  2. await $p werpt haar daar meteen opnieuw, waar de CATCH-faser haar als elke gewone exceptie afhandelt. Zo duiken fouten in achtergrondwerk op waar je op het resultaat wacht.

Cursusnavigatie

Wacht op een fout   |   Webprogrammeren