Ruby:
Manejo de errores
Cómo hacerlo:
Ruby utiliza begin
, rescue
, ensure
y end
para manejar errores. Envuelves el código de riesgo entre begin
y end
. Si ocurre un error, se activa rescue
.
begin
# El código de riesgo va aquí.
puts 10 / 0
rescue ZeroDivisionError => e
puts "¡Ups! No puedes hacer eso: #{e.message}"
ensure
puts "Esto siempre se ejecuta, haya error o no."
end
Salida de muestra:
¡Ups! No puedes hacer eso: dividido por 0
Esto siempre se ejecuta, haya error o no.
Profundizando
Históricamente, el manejo de errores en los lenguajes de programación ha evolucionado significativamente, con lenguajes antiguos a menudo teniendo mecanismos rudimentarios o inexistentes. El manejo de excepciones de Ruby se inspira en lenguajes como Python y Smalltalk.
Alternativas a begin-rescue
en Ruby incluyen usar rescue
en definiciones de métodos o emplear throw
y catch
para el control de flujo no estándar, aunque no se usan para el manejo de errores típico.
Un detalle interesante: las excepciones en Ruby son objetos (instancias de la clase Exception
y sus descendientes), así que puedes definir clases de error personalizadas y hacer más que solo registrar errores — puedes llevar un estado rico a través del programa para un manejo de errores más robusto.
Ver también
- La documentación de Ruby sobre excepciones y manejo de errores: ruby-doc.org
- Una guía detallada sobre las mejores prácticas para el manejo de errores en Ruby: thoughtbot.com