我有一个rake任务,我在开始的时候做了一些检查,如果其中一个检查失败了,我想提前从rake任务返回,我不想执行任何剩余的代码。
我本以为解决方案是在代码中想要返回的地方放置一个return,但我得到了以下错误
unexpected return
发布于 2010-02-23 15:56:40
Rake任务基本上就是一个块。除了lambda之外,代码块不支持return,但是您可以使用next
跳到下一条语句,这在rake任务中与在方法中使用return具有相同的效果。
task :foo do
puts "printed"
next
puts "never printed"
end
或者,您可以在方法中移动代码并在方法中使用return。
task :foo do
do_something
end
def do_something
puts "startd"
return
puts "end"
end
我更喜欢第二种选择。
发布于 2010-12-23 23:52:32
您可以从任务内部使用abort(message)
来中止该任务,并显示一条消息。
发布于 2015-11-01 12:13:14
在这种情况下,我倾向于使用abort
,这是一个更好的选择,例如:
task :foo do
something = false
abort 'Failed to proceed' unless something
end
https://stackoverflow.com/questions/2316475
复制相似问题