"rescue false" 里面的 if condition in ruby 是什么意思
what does "rescue false" mean inside if condition in ruby
我是ruby新手,有一个问题。
if (new_account.save rescue false)
# when account save success
else
# when account save has error
end
我不确定 rescue false 在此代码中的含义。
谢谢
一行解救是语法糖
foo.bar rescue false
# same as
begin
foo.bar
rescue
false
end
所以你的代码和这个差不多
result = nil
begin
result = new_account.save
rescue
result = false
end
if result
# when account save success
else
# when account save has error
end
rescue false
表示在 new_account.save
内部抛出的异常与返回 false
的异常处理相同。在我看来,这是 糟糕的设计 。 new_account
显然设计为有两种不同的失败情况,但调用代码忽略了它。此代码极有可能隐藏保存方法中发生的实际错误。
我是ruby新手,有一个问题。
if (new_account.save rescue false)
# when account save success
else
# when account save has error
end
我不确定 rescue false 在此代码中的含义。 谢谢
一行解救是语法糖
foo.bar rescue false
# same as
begin
foo.bar
rescue
false
end
所以你的代码和这个差不多
result = nil
begin
result = new_account.save
rescue
result = false
end
if result
# when account save success
else
# when account save has error
end
rescue false
表示在 new_account.save
内部抛出的异常与返回 false
的异常处理相同。在我看来,这是 糟糕的设计 。 new_account
显然设计为有两种不同的失败情况,但调用代码忽略了它。此代码极有可能隐藏保存方法中发生的实际错误。