Advertisement
Guest User

Untitled

a guest
Mar 5th, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.38 KB | None | 0 0
  1.   @tailrec
  2.   def retryOn[T](thCls: Class[_ <: Throwable], maxTimes: Int, delayBetweenRetries: Int = 0, onRetry: => Unit = {})(block: => T): T = {
  3.     try block
  4.     catch {
  5.       case t: Throwable if thCls.isInstance(t) && maxTimes > 0 =>
  6.         onRetry
  7.         Thread.sleep(delayBetweenRetries)
  8.         retryOn(thCls, maxTimes - 1, delayBetweenRetries, onRetry)(block)
  9.     }
  10.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement