Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione reattiva / await / Exercises / Attendete un guasto
Soluzione: Attendete un guasto
Ecco una possibile soluzione del compito.
Codice
my $p = start { die 'boom' };
try {
await $p;
CATCH {
default { say "caught: {.message}" }
}
}🦋 Trova il programma nel file await-failure.raku.
Output
caught: boomCommenti
Il blocco della promise solleva un’eccezione, quindi la promise è rotta. L’eccezione non va perduta: viene trattenuta finché qualcuno non attende la promise.
await $pla rilancia proprio lì, dove il phaserCATCHla gestisce come qualunque eccezione ordinaria. È così che gli errori del lavoro in secondo piano emergono là dove aspetti il risultato.