Відповіді:
Метод "def" може служити твердженням "begin":
def foo
...
rescue
...
end
do/ endблокові літерали утворюють неявні блоки виключень.
rescue TypeError; rescue NameError- або ви можете розділити комами винятки класи, наприкладrescue TypeError, NameError
Ви також можете врятувати вбудований:
1 + "str" rescue "EXCEPTION!"
роздрукує "ВИХІД!" оскільки "String не можна примусити до Fixnum"
StandardErrorі всі його підкласи, наприклад NameError- це означає, що навіть помилка друку у вашому коді не призведе до помилки. Див. Thinkbot.com/blog/don-t-inline-rescue-in- рубін .
Приклад:
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
Ось defяк 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