В основном я хочу сделать что-то вроде этого (в 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
ключевые слова, но они, кажется, повторно выполняют блок "попытки", вместо того, чтобы продолжить цикл:
for i in 1..5
begin
do_something_that_might_raise_exceptions(i)
rescue
retry # do_something_* again, with same i
end
end