Curso de Raku / Objetos, entrada/salida y excepciones / Excepciones / Objetos de excepción / Exercises / Empareje el tipo
Solución: Empareje el tipo
Aquí tienes una posible solución para la tarea.
Código
{
my $x = 1 / 0;
say $x;
CATCH {
when X::Numeric::DivideByZero {
say 'cannot divide by zero';
}
}
}🦋 Puedes encontrar el código fuente en el archivo match-the-type.raku.
Salida
cannot divide by zeroComentarios
En Raku,
1 / 0no estalla de inmediato: produce unFailureperezoso. La excepción se lanza solo cuando usamos el valor, aquí al intentar hacerlesay.La excepción lanzada es del tipo incorporado
X::Numeric::DivideByZero, ywhen X::Numeric::DivideByZerola empareja con precisión. Emparejar un tipo concreto, en lugar de capturarlo todo condefault, te permite manejar errores distintos de maneras distintas.