Respuestas:
Un método "def" puede servir como una declaración de "comienzo":
def foo
...
rescue
...
end
do/ endliterales de bloque forman bloques de excepción implícitos.
rescue TypeError; rescue NameError, o puede separar por comas las clases de excepción, por ejemplorescue TypeError, NameError
También puede rescatar en línea:
1 + "str" rescue "EXCEPTION!"
imprimirá "¡EXCEPCIÓN!" ya que 'String no se puede forzar a Fixnum'
StandardErrory todas sus subclases, como NameError, lo que significa que incluso un error tipográfico en su código no generará un error. Consulte thinkbot.com/blog/don-t-inline-rescue-in- rubí .
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í, a defmodo de begindeclaración:
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