groovy 错误retry函数
def retry(int times = 5, Closure errorHandler = {e-> log.warn(e.message,e)}
     , Closure body) {
  int retries = 0
  def exceptions = []
  while(retries++ < times) {
    try {
      return body.call()
    } catch(e) {
      exceptions << e
      errorHandler.call(e)
    }        
  }
  throw new MultipleFailureException("Failed after $times retries", exceptions)
}
retry {
   errorProneOperation()
}
retry(2, {e-> e.printStackTrace()}) {
  errorProneOperation()
}
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号