我是红宝石新手,有一个问题。
if (new_account.save rescue false)
# when account save success
else
# when account save has error
end
我不确定在这段代码中救援错误是什么意思。谢谢
单行救援是语法糖
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
显然设计为有两种不同的失败情况,但调用代码忽略了它。此代码极有可能隐藏保存方法中发生的实际错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句