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