ruby:如何知道脚本是否在第3次重试?

puq*_*uqt 6 ruby

begin
#some routine
rescue
retry
#on third retry, output "no dice!"
end
Run Code Online (Sandbox Code Playgroud)

我想这样做,以便在"第三次"重试时打印一条消息.

jtb*_*des 18

可能不是最好的解决方案,但一个简单的方法就是制作一个tries变量.

tries = 0
begin
  # some routine
rescue
  tries += 1
  retry if tries <= 3
  puts "no dice!"
end
Run Code Online (Sandbox Code Playgroud)


gle*_*ebm 10

loop do |i|
  begin
    do_stuff
    break
  rescue
    raise if i == 2
  end
end
Run Code Online (Sandbox Code Playgroud)

要么

k = 0
begin
  do_stuff
rescue    
  k += 1
  k < 3 ? retry : raise
end
Run Code Online (Sandbox Code Playgroud)


Ped*_*der 5

begin
  #your code
rescue
  retry if (_r = (_r || 0) + 1) and _r < 4  # Needs parenthesis for the assignment
  raise
end
Run Code Online (Sandbox Code Playgroud)