新手问题 请问怎么样代码停止,不让他在往下运行

QueXuQ · 2013年01月24日 · 最后由 QueXuQ 回复于 2013年01月24日 · 2270 次阅读
projects.each do |project|
  begin
    project.amount = amount 
  rescue
    redirect_to :back
    flash[:alert] = '出错了!'
  end
  project.save
end

redirect_to action: "index"

代码如上,我希望代码,如果抛出异常,在:

rescue
  redirect_to :back
  flash[:alert] = '出错了!'
end

这里就停止了,不要在往下执行,循环也停止。 请问需要添加些什么的呢?

你是想要break还是直接return

#1 楼 @ywjno 这两种有什么不一样呢?

redirect_to 不是返回

begin
  projects.each do |project|
    begin
      project.amount = amount 
      # 反正你也想捕获异常就跳出的
      project.save
    rescue
      raise "Some Error Infomation"
    end
  end
rescue
   flash[:alert] = '出错了!'
   redirect_to :back
else
  redirect_to action: "index"
end

#3 楼 @wppurking 谢谢。这样臃肿了点,我还希望 save! 做判断,所以才不想把

project.amount = amount 
project.save

这两个混在一起。

#4 楼 @Rei 恩。Thanks,return是可以的,break不可以。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号