Raku kurss / Objekti, ievade/izvade un izņēmumi / Izņēmumi / Izņēmumu pārtveršana ar try

Viktorīna — try

Ko izdrukā šī programma?

my $r = try {
    die 'Boom!';
    say 'inside';
};

say 'outside';
1outside
0inside
0inside un tad outside
0Boom!
0kļūda

Šeit notiek divas lietas. Pirmkārt, die uzreiz pārtrauc atlikušo try bloka daļu, tāpēc rinda say 'inside' netiek sasniegta nekad — no bloka iekšienes netiek izdrukāts nekas. Otrkārt, tā kā try izņēmumu noķer, pati programma neapstājas: izpilde turpinās aiz bloka, un say 'outside' izpildās parastā kārtā. Tātad vienīgā izdrukātā rinda ir outside. ($r būtu nedefinēts, un paziņojums Boom! gaidītu $!, ja tur ieskatītos.)

Kursa navigācija

Risinājums: Mēģinājums vai noklusētā vērtība   |   Fāzeris CATCH