Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Esceptoj / Esceptobjektoj / Exercises / Kongruigu la tipon

Solvo: Kongruigu la tipon

Jen ebla solvo de la tasko.

Kodo

{
    my $x = 1 / 0;
    say $x;

    CATCH {
        when X::Numeric::DivideByZero {
            say 'cannot divide by zero';
        }
    }
}

🦋 Vi povas trovi la fontkodon en la dosiero match-the-type.raku.

Eligo

cannot divide by zero

Komentoj

  1. En Raku, 1 / 0 ne eksplodas tuj; ĝi produktas maldiligentan Failure. La escepto estas ĵetata nur, kiam ni uzas la valoron, ĉi tie provante say ĝin.

  2. La ĵetita escepto estas de la enkonstruita tipo X::Numeric::DivideByZero, kaj when X::Numeric::DivideByZero kongruas kun ĝi precize. Kongrui kun specifa tipo, anstataŭ kapti ĉion per default, permesas al vi trakti malsamajn erarojn malsame.

Kursa navigado

Kongruigu la tipon   |   Prefiksu la mesaĝon