Corso di Raku / Oggetti, input/output ed eccezioni / Eccezioni / Oggetti eccezione / Exercises / Abbinate il tipo
Soluzione: Abbinate il tipo
Ecco una possibile soluzione del compito.
Codice
{
my $x = 1 / 0;
say $x;
CATCH {
when X::Numeric::DivideByZero {
say 'cannot divide by zero';
}
}
}🦋 Trova il programma nel file match-the-type.raku.
Output
cannot divide by zeroCommenti
In Raku
1 / 0non esplode immediatamente; produce unFailurepigro. L’eccezione viene sollevata solo quando usiamo il valore, qui provando a farnesay.L’eccezione sollevata è del tipo incorporato
X::Numeric::DivideByZero, ewhen X::Numeric::DivideByZerola riconosce con precisione. Confrontare un tipo specifico, invece di intercettare tutto condefault, ti permette di gestire errori diversi in modi diversi.