Raku kurss / Objekti, ievade/izvade un izņēmumi / Izņēmumi

Fāzeris CATCH

Bloks try ir ērts, taču tas visu bloku uztver kā vienu veselumu: vai nu tas nostrādā, vai ne. Fāzeris CATCH dod smalkāku vadību — tas ļauj izņēmumu apstrādāt iekšpus tā bloka, kurā tas notika, un izlemt, ko darīt.

CATCH ir fāzeris, tāpat kā tie, ar kuriem iepazināties sadaļā par vadības plūsmu. To rakstāt jebkur bloka iekšienē; tas izpildās tikai tad, ja tur tiek izmests izņēmums. Izņēmums ir pieejams kā tēma $_:

{
    die 'Boom!';

    CATCH {
        default {
            say 'Caught: ' ~ .message;
        }
    }
}

say 'after';

Programma izdrukā:

Caught: Boom!
after

Bloks default CATCH iekšienē apstrādā jebkuru izņēmumu. Kad tas ir izpildījies, izņēmums tiek uzskatīts par apstrādātu, tāpēc programma neapstājas — izpilde turpinās aiz apņemošā bloka, un tieši tāpēc tiek izdrukāts after.

Bez CATCH die būtu beidzis programmu, pirms after varētu tikt sasniegts.

Prakse

Jūs gaida 1 viktorīna par šī temata saturu.

Vingrinājumi

Šajā sadaļā ir 3 vingrinājumi. Pirms ķerieties pie vingrinājumiem, izlasiet visus šīs sadaļas tematus.

  1. Apstrādājiet un turpiniet
  2. Pārdzīvojiet ciklu
  3. Ziņojiet un atgūstieties

Kursa navigācija

Viktorīna — try   |   Apstrādājiet un turpiniet