Retry A Block After An Exception
Ruby comes with a retry mechanism that allows you to recover from known exceptions by retrying the code that led to the exception. In network or timing-based situations where race conditions are possible, the most straightforward recourse may be to just retry a couple times.
Set up a begin
/ rescue
block like you'd normally do for a chunk of code that may raise an exception. Then add a retry
call to the rescue
block.
If an exception is raised, this will tell Ruby to re-execute the code in the begin
block over and over until the exception isn't raised.
To avoid an infinite loop, you can limit the retries with a counting variable.
This will re-raise after 3 tries.
Here is the full example
Last updated