Raku kurss / Objekti, ievade/izvade un izņēmumi / Izņēmumi / Izņēmumu objekti / Exercises / Nosauciet kļūdu

Risinājums: Nosauciet kļūdu

Šeit ir iespējams risinājums uzdevumam.

Kods

sub risky {
    die 'sub failed';
}

{
    risky();

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

🦋 Atrodiet programmu failā name-the-error.raku.

Izvade

X::AdHoc
sub failed

Komentāri

  1. die notiek risky iekšienē, taču izņēmums ceļo augšup pie izsaucēja. To apstrādā CATCH blokā, kas izsauca risky, un tieši tā kļūdu apstrāde parasti arī darbojas: neveiksmei un tās apstrādātājam nav jābūt vienā rutīnā.

  2. Vienkāršs die ar virkni rada izņēmumu X::AdHoc, par ko ziņo .^name, bet .message atgriež tekstu, kas padots die.

Kursa navigācija

Nosauciet kļūdu   |   Saskaņojiet tipu