Raku kurss / Objekti, ievade/izvade un izņēmumi / Izņēmumi / Fāzeris CATCH / Exercises / Pārdzīvojiet ciklu

Risinājums: Pārdzīvojiet ciklu

Šeit ir iespējams risinājums uzdevumam.

Kods

for 1, 2, 3 -> $n {
    if $n == 2 {
        die "bad: $n";
    }
    say "ok: $n";

    CATCH {
        default {
            say "caught: " ~ .message;
        }
    }
}

🦋 Atrodiet programmu failā survive-a-loop.raku.

Izvade

ok: 1
caught: bad: 2
ok: 3

Komentāri

  1. Fāzeris CATCH apstrādā izņēmumu, kas izmests cikla ķermeņa iekšienē, tāpēc die otrajā iterācijā tiek noķerts, nevis kļūst liktenīgs.

  2. Tiklīdz izņēmums ir apstrādāts, cikls vienkārši turpinās ar nākamo vērtību, un tieši tāpēc ok: 3 joprojām tiek izdrukāts.

Kursa navigācija

Pārdzīvojiet ciklu   |   Ziņojiet un atgūstieties