Raku kurss / Objekti, ievade/izvade un izņēmumi / Izņēmumi / Izņēmumu objekti / Exercises / Saskaņojiet tipu

Risinājums: Saskaņojiet tipu

Šeit ir iespējams risinājums uzdevumam.

Kods

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

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

🦋 Atrodiet programmu failā match-the-type.raku.

Izvade

cannot divide by zero

Komentāri

  1. Raku valodā 1 / 0 neuzsprāgst uzreiz; tas rada slinku Failure. Izņēmums tiek izmests tikai tad, kad vērtību izmantojam, — šeit, mēģinot to say.

  2. Izmestais izņēmums ir iebūvētā tipa X::Numeric::DivideByZero, un when X::Numeric::DivideByZero tam precīzi atbilst. Piemeklējot konkrētu tipu, nevis noķerot visu ar default, dažādas kļūdas var apstrādāt dažādi.

Kursa navigācija

Saskaņojiet tipu   |   Prefikss ziņojumam