AD

¿Ya dominas lo básico? Un curso estructurado de Ruby es la vía rápida para dar el salto.

Ver cursos de Ruby en Udemy

Enlace de afiliado. No te cuesta nada extra.

💎Lecciones de Ruby
Lección 25 / 68

Escribir tu propia clase de excepción

En esta lección crearás un tipo de error propio para poder distinguirlo de los demás.

Basta con heredar de StandardError: class ValidationError < StandardError; end. Después se lanza con raise ValidationError, "mensaje" y se captura con rescue ValidationError => e, sin atrapar de paso cualquier otro fallo.

El código de ejemplo valida una edad y lanza su propio error cuando es negativa.

El punto que hay que respetar es de quién heredar: de StandardError, no de Exception. Un rescue normal solo captura los descendientes de StandardError, así que un error que herede directamente de Exception atravesará los bloques de captura de todo el mundo y tumbará el programa. Es un fallo que no se nota hasta que ya está en producción.

En aplicaciones reales se define una jerarquía pequeña por dominio —PagoError y debajo TarjetaRechazada, SaldoInsuficiente— para poder capturar todo un grupo con una sola línea y aun así distinguir el caso concreto cuando hace falta.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Ruby directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)