Declaración y captura de excepciones en Ruby
En muchos lenguajes de programación existen excepciones. Las excepciones sirven para controlar varios tipos de errores que pueden suceder durante la execución de un programa. Cuando ocurre el error, con las excepciones se puede capturar para tratarlo en vez de terminar el programa por completo.
En Ruby on Rails, el tratamiento de excepciones se encapsula entre cláusulas begin y end de la siguiente forma:
begin # codigo... rescue TIPO_EXCEPCION_1 STDERR.puts "Ha ocurrido un problema de tipo 1" rescue TIPO_EXCEPCION_2 STDERR.puts "Ha ocurrido un problema de tipo 2" else STDERR.puts "Ha ocurrido otro problema" ensure # se ejecuta siempre haya o no excepciónend
A continuación mostramos los tipos de excepciones de Ruby:
Podemos lanzar excepciones propias usando la palabra raise:
def metodo_que_lanza_excepcion raise "error 1"end
metodo_que_lanza_excepcion rescue puts $!
El código anterior definimos un método y luego fuera de este método definimos qué pasará cuando se lanze la excepción. En este ejemplo imprimimos con el comando puts el mensaje que se passa por parámetro: “error 1”