在这里学习ruby,如果出现错误来控制if / else语句,我该如何使用?在ruby伪代码中它就像是。
if block.call raise?
#if block doesn't exist and an error is raised do this
else
#if block does exist do this
end
答案 0 :(得分:1)
你可以像这样使用内联救援:
if block.call rescue false
else
end
虽然你不应该这样做。原因是这将拯救块中的任何错误。说你在块定义中拼错了一些单词。您的代码将按照预期的方式运行,您可能很难跟踪它。
在这种情况下,要检查是否给出了阻止,您可以简单地说if block
。如果您使用的是yield
而不是&block
参数,则可以使用特殊方法if block_given?
。
当然,您可以使用救援来实现条件逻辑,但这不是他们的目的,并且在大多数情况下并没有使事情变得简单。