Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Esceptoj / Esceptobjektoj / Exercises / Nomu la eraron

Solvo: Nomu la eraron

Jen ebla solvo de la tasko.

Kodo

sub risky {
    die 'sub failed';
}

{
    risky();

    CATCH {
        default {
            say .^name;
            say .message;
        }
    }
}

🦋 Vi povas trovi la fontkodon en la dosiero name-the-error.raku.

Eligo

X::AdHoc
sub failed

Komentoj

  1. La die okazas ene de risky, sed la escepto vojaĝas supren al la vokanto. La CATCH en la bloko, kiu vokis risky, traktas ĝin, kio estas la maniero, kiel erartraktado normale funkcias: la misfunkcio kaj ĝia traktilo ne devas esti en la sama rutino.

  2. Simpla die kun ĉeno kreas escepton X::AdHoc, kiun .^name raportas, kaj .message redonas la tekston, kiu estis transdonita al die.

Kursa navigado

Nomu la eraron   |   Kongruigu la tipon