我读了这个片段,我想了解如何使用retry
,我无法想到使用它。其他人如何使用它?
#!/usr/bin/ruby
for i in 1..5
retry if i > 2
puts "Value of local variable is #{i}"
end
答案 0 :(得分:8)
有几个用例。这是编程Ruby书中的一本
@esmtp = true
begin
# First try an extended login. If it fails because the
# server doesn't support it, fall back to a normal login
if @esmtp then
@command.ehlo(helodom)
else
@command.helo(helodom)
end
rescue ProtocolError
if @esmtp then
@esmtp = false
retry
else
raise
end
end
另一个常见的情况是电子邮件递送。您可能需要重试SMTP传送N次,在每次重试之间添加sleep
以避免网络连接导致的临时问题。
答案 1 :(得分:0)
我将它用于对第三方web api进行api调用的模块,因此如果失败,我会重试2次。