Ruby 1.8 では、次のretry
ように使用できます。
for i in 0..4
puts i
retry if i == 4
end
しかし、Ruby 1.9 ではエラーがスローされます: Invalid retry, what is the usage of retry
in Ruby 1.9? http://www.ruby-doc.org = retry
( _
Ruby 1.8 では、次のretry
ように使用できます。
for i in 0..4
puts i
retry if i == 4
end
しかし、Ruby 1.9 ではエラーがスローされます: Invalid retry, what is the usage of retry
in Ruby 1.9? http://www.ruby-doc.org = retry
( _
失敗した操作を再試行するためのものです(例外をキャッチした場合)
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
Ruby 1.9 はretry
inbegin rescue
句のみをサポートします。
継続を使用して、古いものの動作を複製できますretry
require 'continuation'
def with_retry
loop { callcc { |cc| def cc.retry; call; end; yield cc; return }}
end
with_retry do |cc|
for n in 1..4
puts n
cc.retry if n == 4
end
end