Raku kurss / Objekti,
ievade/izvade un izņēmumi / Izņēmumi / Izņēmumu
pārtveršana ar try / Exercises / Pārtveriet kļūdu
Risinājums: Pārtveriet kļūdu
Šeit ir iespējams risinājums uzdevumam.
Kods
my $ok = try { 6 * 7 };
say $ok;
my $bad = try { die 'broken' };
say $bad.defined;
say $!.message;🦋 Atrodiet programmu failā catch-the-error.raku.
Izvade
42
False
brokenKomentāri
Kad bloks izpildās bez kļūdas,
tryvienkārši izrēķinās par bloka vērtību, tāpēc$oksatur42.dieotrā bloka iekšienē izmet izņēmumu, tāpēc šis bloks izrēķinās par nedefinētu vērtību un$bad.definedirFalse.Noķertais izņēmums glabājas speciālajā mainīgajā
$!, un$!.messageatgriež tam doto tekstubroken.