我觉得有点奇怪,因为有一些问题有点像这样,但是不够接近或者没有答案。ruby:在异常后继续进行同样的循环迭代
[编辑:我改写的问题,以使其更清晰]
我有一个循环,做了一些事情,并用它玩,看看各种选项将努力使事情更易读,清洁器。最后,我搞砸了一些东西,它被抛出并且异常,这是在救援时遇到的。到现在为止还挺好。然而,我不能找到任何方法让ruby在循环的同一次迭代中继续使用以下语句 - 异常总是会产生以下语句,并转移到下一次迭代 - 默认行为。重做或重试将是毫无意义的,并导致无限循环,再次发生同样的错误和异常,等等,
我有什么办法强制ruby以某种方式处理错误,然后只是继续它离开的地方?
这里是一个样本,从我不知道在哪里偷来,并适应。
3.times do |i|
begin
# first bunch of stuff to do
# second bunch of stuff to do
# third bunch of stuff to do
# fourth bunch of stuff to do
rescue => e
p e
end
end
基本上,在这个例子中,我想要的东西串的所有四个对移动到循环的下一次迭代中,即使其中一个应该引起错误之前执行。我不是要处理这个错误,让我看到异常结果等等,但是有效地忽略它并继续做其他所有事情。
任何想法?这可能是我以前从未见过的真正明显的事情。
无论是否发生异常,是否应该执行'puts'? – Stefan
是的。这模拟了我正在搞乱的主程序中的字符串操作等等。 – MrBungleBear
如果您使用故意的流量控制异常,这可能是一个错误。为什么不只是一个'if'? – tadman