如何在Proc对象中存储重试语句

时间:2013-11-12 10:24:35

标签: ruby proc

我正在尝试使用retry语句存储块,但收到语法错误:Invalid retry。我该如何妥善存放?

retries = 3
proc = Proc.new do
  if retries > 0
    p " Retries left: #{retries}"
    retries -= 1
    retry
  end
end
begin
  ...
rescue SomeErrorOne
  proc.call
rescue SomeErrorTwo
  proc.call
end

1 个答案:

答案 0 :(得分:3)

尝试将retry更改为redo。我认为在Ruby 1.9中进行了一些更改,因为retry关键字被滥用了。

可以在此处找到差异:http://rubyquicktips.com/post/1122838559/redo-vs-retry请参阅底部的评论。