Почему HttpErrorHandler, будучи одиночкой в ​​Play, не так уж плох? - PullRequest
0 голосов
/ 24 января 2020

Существует рекомендуемый способ обработки исключений в Play, описанный здесь: здесь

это выглядит так:

@Singleton
class ErrorHandler extends HttpErrorHandler {
  def onClientError(request: RequestHeader, statusCode: Int, message: String): Future[Result] = {
    Future.successful(
      Status(statusCode)("A client error occurred: " + message)
    )
  }

  def onServerError(request: RequestHeader, exception: Throwable): Future[Result] = {
    Future.successful(
      InternalServerError("A server error occurred: " + exception.getMessage)
    )
  }
}

И это синглтон. Я предполагаю, что поскольку оно не содержит состояния, оно не должно замедлять или усложнять вещи.

Я знаю, что синглтоны считаются запахом кода, и люди обычно стараются избегать их как чумы.

Так почему же здесь нет ничего плохого в данном конкретном случае?

Я также знаю, что эта схема обработки ошибок довольно распространена, но мои коллеги и я обеспокоены тем фактом, что это синглтон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...