Ответ 1
Метод "def" может служить "началом":
def foo
...
rescue
...
end
Я знаю стандартную технику, когда начинаю спасательный конец
Как использовать блок спасения самостоятельно.
Как это работает и как он узнает, какой код отслеживается?
Метод "def" может служить "началом":
def foo
...
rescue
...
end
Вы также можете спасти inline:
1 + "str" rescue "EXCEPTION!"
распечатает "ИСКЛЮЧЕНИЕ!". так как "Строка не может быть принудительно введена в Fixnum"
Я использую команду def/rescue много с проверками ActiveRecord:
def create
@person = Person.new(params[:person])
@person.save!
redirect_to @person
rescue ActiveRecord::RecordInvalid
render :action => :new
end
Я думаю, что это очень скудный код!
Пример:
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