У меня есть два действия:Как я могу обрабатывать ошибки с помощью ActionBuilder и Action?
object ErrorHandler extends
ActionBuilder[Request]{
def invokeBlock[A](request: Request[A], block: (Request[A]) => Future[Result]) = {
try {
block(request)
} catch {
case ex: Throwable => Future.successful{
InternalServerError(
Json.obj(
"status" -> JsString("error")
)
)
}
}
}
}
И еще одно действие:
object WithFieldAction extends
ActionBuilder[WithFieldRequest] with ActionTransformer[Request, WithFieldRequest] {
val FIELD = "field"
def transform[A](request: Request[A]) = Future.successful {
new WithFieldRequest(request.getQueryString(FIELD), request)
}
}
я совмещаю эти действия:
def index = (ErrorHandler andThen WithFieldAction) { implicit request =>
1/0
}
Но ErrorHandler
не перехватывает исключение и я вижу страница ошибки по умолчанию. Как я могу это исправить? (Я не могу использовать глобальный обработчик ошибок, потому что хочу иметь разные обработчики для разных групп конечных точек)