scala> RetryUtil.retry(1000 #:: 3000 #:: 10000 #:: Stream.empty[Int], {_ => true}) { | println(new java.util.Date) | throw new RuntimeException("hoge") | } Thu Jul 05 02:58:24 JST 2012 Thu Jul 05 02:58:25 JST 2012 Thu Jul 05 02:58:28 JST 2012 Thu Jul 05 02:58:38 JST 2012 RetryUtil$RetryException at RetryUtil$._retry$1(:30) at RetryUtil$.retry(:35) at .(:14) at .() at .(:11) at .() at $print() at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:704) at scala.tools.nsc.interpreter.IMain$Request$$anonfun$14.apply(IMain.scala:920) at scala.tools.nsc.interpreter.Line$$anonfun$1.apply$mcV$sp(Line.scala:43) at scala.tools.nsc.io.package$$anon$2.run(package.scala:25) at java.lang.Thread.run(Thread.java:722)