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
broken

Komentāri

  1. Kad bloks izpildās bez kļūdas, try vienkārši izrēķinās par bloka vērtību, tāpēc $ok satur 42.

  2. die otrā bloka iekšienē izmet izņēmumu, tāpēc šis bloks izrēķinās par nedefinētu vērtību un $bad.defined ir False.

  3. Noķertais izņēmums glabājas speciālajā mainīgajā $!, un $!.message atgriež tam doto tekstu broken.

Kursa navigācija

Pārtveriet kļūdu   |   Kad nekas nenoiet greizi