Respuestas:
Un método "def" puede servir como una declaración de "comienzo":
def foo
...
rescue
...
end
do
/ end
literales 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'
StandardError
y 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 def
modo de begin
declaració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