tutorial - ruby wikipedia
¿Cómo se puede usar el rescate en Ruby sin el bloque de inicio y fin? (4)
Sé de la técnica estándar de tener un principio de rescate
¿Cómo uno solo usa el bloque de rescate por sí mismo?
¿Cómo funciona y cómo sabe qué código se está monitoreando?
Ejemplo:
begin
# something which might raise an exception
rescue SomeExceptionClass => some_variable
# code that deals with some exception
ensure
# ensure that this code always runs
end
Aquí, def
como una declaración de begin
:
def
# something which might raise an exception
rescue SomeExceptionClass => some_variable
# code that deals with some exception
ensure
# ensure that this code always runs
end
Estoy usando mucho la combinación de def / rescue con las validaciones de ActiveRecord:
def create
@person = Person.new(params[:person])
@person.save!
redirect_to @person
rescue ActiveRecord::RecordInvalid
render :action => :new
end
¡Creo que es un código muy delgado!
También puedes rescatar en línea:
1 + "str" rescue "EXCEPTION!"
imprimirá "¡EXCEPCIÓN!" ya que ''String no puede ser coaccionado en Fixnum''
Un método "def" puede servir como una declaración de "inicio":
def foo
...
rescue
...
end