Ruby / Rails突破了循环内部的方法

贝克曼

我使用两种方法将类别同步到第三方服务。第一种方法遍历所有内容,第二种方法实际上导出每个类别。如果出现故障,我该如何彻底摆脱循环?

def export_all
  Category.find_each do |c|
    export_category(c)
  end
end

def export_category(c)
  begin
    sync_category(c)
  rescue Exception => e
    # break out of `export_all` loop
  end
end
克雷格·卡明斯基

您有几种选择可以打破循环。最简单的是,您可以在循环代码中使用breakreturn

在上述示例的上下文中,如果可能,在较大的应用程序上下文中,执行以下操作可能会更容易:

def export_all
  Category.find_each do |c|
    begin 
      export_category(c)
    rescue SpecificErrorIsBetterThanGenericExceptionIfPossible => e
      break
    end
  end
end

def export_category(c)
  sync_category(c)
end

从您的问题看来,您希望在遇到异常时打破export_all方法中的循环。在这种情况下,我更喜欢在该级别的中断/错误处理代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章