Відповіді:
Метод "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