Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Esceptoj / La fazero CATCH / Exercises / Traktu kaj daŭrigu

Solvo: Traktu kaj daŭrigu

Jen ebla solvo de la tasko.

Kodo

for <ok bad ok> -> $item {
    {
        die 'boom' if $item eq 'bad';
        say "processed $item";

        CATCH {
            default {
                say "skipped ($item): {.message}";
            }
        }
    }
}

🦋 Vi povas trovi la fontkodon en la dosiero handle-and-continue.raku.

Eligo

processed ok
skipped (bad): boom
processed ok

Komentoj

  1. La fazero CATCH estas ene de la po-era bloko, do ĝi traktas die por nur tiu unu ero. Ĉar la escepto estas traktata tie, ĝi neniam eskapas por haltigi la tutan buklon.

  2. Jen la tipa uzo de CATCH super try: misfunkcio en unu iteracio estas traktata loke, kaj la buklo moviĝas al la sekva ero. La meza ero malsukcesas, sed la du eroj ok ankoraŭ estas prilaborataj.

Kursa navigado

Traktu kaj daŭrigu   |   Postvivu iteracion