Raku kurss / Objekti, ievade/izvade un izņēmumi / Izņēmumi / Izņēmumu objekti / Exercises / Saskaņojiet tipu
Risinājums: Saskaņojiet tipu
Šeit ir iespējams risinājums uzdevumam.
Kods
{
my $x = 1 / 0;
say $x;
CATCH {
when X::Numeric::DivideByZero {
say 'cannot divide by zero';
}
}
}🦋 Atrodiet programmu failā match-the-type.raku.
Izvade
cannot divide by zeroKomentāri
Raku valodā
1 / 0neuzsprāgst uzreiz; tas rada slinkuFailure. Izņēmums tiek izmests tikai tad, kad vērtību izmantojam, — šeit, mēģinot tosay.Izmestais izņēmums ir iebūvētā tipa
X::Numeric::DivideByZero, unwhen X::Numeric::DivideByZerotam precīzi atbilst. Piemeklējot konkrētu tipu, nevis noķerot visu ardefault, dažādas kļūdas var apstrādāt dažādi.