Basically, I want to do something like this (in Python, or similar imperative languages):
for i in xrange(1, 5): try: do_something_that_might_raise_exceptions(i) except: continue # continue the loop at i = i + 1 How do I do this in Ruby? I know there are the redo and retry keywords, but they seem to re-execute the "try" block, instead of continuing the loop:
for i in 1..5 begin do_something_that_might_raise_exceptions(i) rescue retry # do_something_* again, with same i end end 3 Answers
In Ruby, continue is spelt 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 3to print the exception:
rescue puts $!, $@ next # do_something_* again, with the next i end