基本的に、私はこのようなことをしたいです(Python、または同様の命令型言語で):
for i in xrange(1, 5):
try:
do_something_that_might_raise_exceptions(i)
except:
continue # continue the loop at i = i + 1
Rubyでこれを行うにはどうすればよいですか? redo
およびretry
キーワードがあることは知っていますが、ループを継続する代わりに、 "try"ブロックを再実行するようです:
for i in 1..5
begin
do_something_that_might_raise_exceptions(i)
rescue
retry # do_something_* again, with same i
end
end
Rubyでは、continue
はnext
と綴られます。
for i in 1..5
begin
do_something_that_might_raise_exceptions(i)
rescue
next # do_something_* again, with the next i
end
end
例外を出力するには:
rescue
puts $!, $@
next # do_something_* again, with the next i
end