En un programa en ejecución pueden suceder acciones inesperadas. Las excepciones tienen como función solucionar los problemas que dicahs acciones pueden ocasionar.
En Ruby podemos decir que una excepción es un objeto, que se crea cuando se da una situación
anómala durante la ejecución de nuestro código.
Sentencia rescue:
begin
# código susceptible de generar una excepción
rescue [tipo de excepción]
# código que trata el error producido
else
# Se ejecuta si no se produce la excepción
end
El bloque de código marcado con begin se ejecutará hasta que haya una excepción, lo que provoca que el control se transfiera a un bloque con el código de gestión de errores, aquel marcado con rescue.
Sentencia ensure:
begin
#código
rescue
#mas código
ensure
#codigo que se ejecutará siempre
end
El bloque de código de ensure se ejecuta independientemente de si se produce o no la excepción. tiene como finalidad realizar ciertas acciones cuando el método termina su ejecución.
Ensure debe colocarse al final de los rescues.
Sentencia retry:
begin
...
rescue
retry
end
Se puede utilizar la sentencia de control retry para repetir la iteración del código del bloque begin.
Sentencia raise:
begin
raise(ArgumentError, "error en el argumento")
rescue
puts $!
end
La sentencia raise es la encargada de lanzar las excepciones. La cadena que describe la excepción se le pasa como argumento. El argumento es opcional y en caso de no llevarlo crea una excepción RuntimeError o relanzaría la excepción capturada si nos encontraramos dentro de un rescue.
No hay comentarios:
Publicar un comentario