Raku kurss / Objekti, ievade/izvade un izņēmumi / Izņēmumi
Izņēmumu pārtveršana ar
try
Kad Raku programmā kaut kas noiet greizi — trūkstošs fails, skaidri
norādīts die —, tiek izmests izņēmums. Pēc
noklusējuma neapstrādāts izņēmums aptur programmu. Bloks
try ļauj izpildīt kodu, kas varētu neizdoties, bez
programmas avārijas.
Riskanto kodu ietinat blokā try. Ja tā iekšienē tiek
izmests izņēmums, bloks tur apstājas, taču programma turpinās:
my $result = try {
die 'Boom!';
};
say "Still works";die noķer try, tāpēc programma neavarē — tā
turpina uzreiz ar nākamo teikumu un izdrukā:
Still worksKad bloks šādi neizdodas, tas izrēķinās par nedefinētu vērtību, tāpēc
$result ir nedefinēts:
say $result.defined; # FalseNoķertais izņēmums glabājas speciālajā mainīgajā $!. Tā
paziņojumu var nolasīt no turienes:
say $!.message; # Boom!Tātad try pārvērš liktenīgu kļūdu par kaut ko tādu, ko
jūsu programma var izpētīt un uz ko reaģēt. Ja bloks izpildās bez
neviena izņēmuma, $result satur tā vērtību, un
$! ir nedefinēts.
Arī šajā sadaļā
Prakse
Jūs gaida 1 viktorīna par šīs sadaļas saturu.
Vingrinājumi
Šajā sadaļā ir 3 vingrinājumi. Pirms ķerieties pie vingrinājumiem, izlasiet visus šīs sadaļas tematus.