Cursus Raku / Objecten, in- en uitvoer en excepties / Excepties / Exceptieobjecten / Exercises / Match het type
Oplossing: Match het type
Hier is een mogelijke oplossing voor de taak.
Code
{
my $x = 1 / 0;
say $x;
CATCH {
when X::Numeric::DivideByZero {
say 'cannot divide by zero';
}
}
}🦋 Je kunt de broncode vinden in het bestand match-the-type.raku.
Uitvoer
cannot divide by zeroOpmerkingen
In Raku ontploft
1 / 0niet meteen; het levert een luieFailureop. De exceptie wordt pas geworpen wanneer we de waarde gebruiken, hier door haar te proberen tesay-en.De geworpen exceptie is van het ingebouwde type
X::Numeric::DivideByZero, enwhen X::Numeric::DivideByZeromatcht hem precies. Op een specifiek type matchen, in plaats van alles metdefaultte vangen, laat je verschillende fouten op verschillende manieren afhandelen.