Play的隐含def! 2.2错误处理

时间:2014-04-26 00:09:28

标签: scala playframework playframework-2.2 implicit-conversion implicit

嘿希望有人可以帮我这个。我现在正在尝试编写一个implicit def,可以选择特定java.net.ConnectException并返回ServiceUnavailable而不是InternalServerError。这是现有的控制器方法,看起来非常类似于许多其他错误:

  def list = SecuredAction { implicit request =>
    resource.Messaging.forClient(clientId.get).eitherRaw match {
      case Right(o) =>
        Ok( o )
      case Left(e) =>
        logger.error("Error occured attempting to update message.")
        logger.error(ErrorWriter.writeString(e))
        InternalServerError
    }
  }

现在,我无法获得隐含的def来接收上面的e。不知道从哪里开始。这是我正在尝试编写的一些伪代码:

implicit def handleConnectException(e: java.net.ConnectionException) = {
  logger.error(ErrorWriter.writeStackTrace(e))
  ServiceUnavailable
}

我知道ConnectException包含一条消息,所以它必须是ConnectException[String]吗?

真的很感谢你的帮助!

0 个答案:

没有答案