捕获Ruby异常以进行日志记录,但是不要抛出它?

时间:2010-02-12 17:27:30

标签: ruby exception-handling

我好像脑子冻结了。我希望在循环几个对象期间捕获可能的Ruby异常,以便将其视为稍后显示的失败,但我希望执行暂停;我希望它跳过坏记录并继续。我该怎么做呢?我不认为我可以使用retry因为那会再次尝试相同的记录,对吗?

2 个答案:

答案 0 :(得分:8)

some_ary.each do |item|
  begin
    do_something_with item
  rescue Exception => e
    Logger.error "OH NO: #{e}"
  end
end

执行应该继续捕获并记录错误。

答案 1 :(得分:0)

不要“做”任何事情。如果您已经捕获异常并处理它(通过将坏对象添加到列表或其他内容),请继续前进。伪代码:

for each object foo
    try
        do something risky with foo
    catch
        badobjects.add(foo)