Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Reaktiva programado / await / Exercises / Atendu misfunkcion
Solvo: Atendu misfunkcion
Jen ebla solvo de la tasko.
Kodo
my $p = start { die 'boom' };
try {
await $p;
CATCH {
default { say "caught: {.message}" }
}
}🦋 Vi povas trovi la fontkodon en la dosiero await-failure.raku.
Eligo
caught: boomKomentoj
La bloko de la promeso ĵetas escepton, do la promeso estas rompita. La escepto ne perdiĝas — ĝi estas tenata, ĝis iu atendas la promeson.
await $preĵetas ĝin ĝuste tie, kie la faziloCATCHtraktas ĝin kiel ajnan ordinaran escepton. Tiel eraroj en fona laboro aperas tie, kie vi atendas la rezulton.