如何获取该方法的scala方法名称和类

时间:2015-08-17 21:45:35

标签: scala

我有一个处理给定函数的重试逻辑的函数。在该函数内部,我想打印一个具有给定函数名称和类名的调试日志(当然调用者可以传递该信息)但我想知道如何在没有调用的情况下获取这些值。

我的重试方法如下,现在我将methodName作为参数,我可以从fn中取出吗?

  def retry[T](attempts: Int, max: Int, operation: String)(fn: => T): T = {
    try {
      fn
    } catch {
      case e : Throwable => {
        if (attempts < max) {
          val retryAttempt = attempts + 1
          Thread.sleep((scala.math.pow(2, retryAttempt) * 2000).toLong)
          logger.debug(s"Retrying operation: $operation retryCount $retryAttempt")
          retry(retryAttempt, max, operation)(fn)
        } else {
          throw e
        }
      }
    }
  }

0 个答案:

没有答案