Ruby从外部方法调用枚举器的下一个

时间:2015-06-21 18:13:22

标签: ruby-on-rails ruby enumerable

我正在编写一些DSL,我希望有一个可再利用的方法,可以产生一个块并捕获任何异常。

示例:

def trap_exception(&block)
  yield
rescue StandardError => e
  log "Error: #{e.message}"
  next
end

然后我就这样使用它:

# items is an array
items.each do |item|
  trap_exception do
    # something that might raise an exception. If so, pass to the next item in array
  end
end

这会引发错误,因为next未在可枚举内被调用。

我希望将trap_exception块中的代码保持尽可能干净。我也会在很多不同的地方使用这种方法,所以我尽量减少代码重复。

实现这一目标的最佳方法是什么?

0 个答案:

没有答案