Ruby redo and retry Statement
Last Updated :
17 Sep, 2019
In Ruby, Redo statement is used to repeat the current iteration of the loop. redo always used inside the loop. The redo statement restarts the loop without evaluating the condition again.
restart = false
for x in 2 .. 20
if x == 15
if restart == false
puts "Re-doing when x = " + x.to_s
restart = true
redo
end
end
puts x
end
|
Output:
2
3
4
5
6
7
8
9
10
11
12
13
14
Re-doing when x = 15
15
16
17
18
19
20
In above example, redo statement apply when x = 15.
retry Statement:
To repeat the whole loop iteration from the start the retry statement is used. retry always used inside the loop.
Example #1:
10 .times do |i|
begin
puts "Iteration #{i}"
raise if i > 2
rescue
retry
end
end
|
Output:
Iteration 0
Iteration 1
Iteration 2
Iteration 3
Iteration 3
Iteration 3
...
Example #2:
def geeks
attempt_again = true
p 'checking'
begin
p 'crash'
raise 'foo'
rescue Exception => e
if attempt_again
attempt_again = false
retry
end
end
end
|
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...