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]
吗?
真的很感谢你的帮助!