Ruby 1.9上`retry`的用法是什么?

Ste*_*ing 1 ruby

在Ruby 1.8中,retry可以使用如下:

for i in 0..4
  puts i
  retry if i == 4
end
Run Code Online (Sandbox Code Playgroud)

但是在Ruby 1.9中,它会抛出一个错误:无效的重试,retryRuby 1.9中的用法是什么?我retryhttp://www.ruby-doc.org上找不到=(

Ser*_*sev 5

它用于重试失败的操作(当您捕获异常时)

n = 0
begin
  puts 'Trying to do something'
  raise 'oops'
rescue => ex
  puts ex
  n += 1
  retry if n < 3
end
puts "Ok, I give up"


# >> Trying to do something
# >> oops
# >> Trying to do something
# >> oops
# >> Trying to do something
# >> oops
# >> Ok, I give up
Run Code Online (Sandbox Code Playgroud)