Как вручную создать исключение HTTP 404 Not Found в spray/akka?

В моей функции репозитория я читаю пользователя, а затем обновляю этого пользователя:

def update(u: User): Future[Int] = {
    this.read(u.id).flatMap {
      case Some(existingUser) =>
        db.run(
          userTable
            .filter(_.id === user.id)
            .update(user.copy(createdDate = existingUser.createdDate)))
      //case None => throw new NotFoundException(); // does this exception exist in spray/akka?
    }
}

Я хотел бы создать здесь какое-то исключение, когда пользователь не найден, чтобы спрей/акка знал, что исключение означает возврат HTTP 404 Not Found.

Содержит ли спрей/акка какое-то исключение NotFoundException, которое я могу сгенерировать вручную?


person Rory    schedule 25.07.2017    source источник


Ответы (2)


Вы можете создать любое исключение, а затем настроить обработчик исключений для преобразования исключения в ответ 404.

person dvim    schedule 25.07.2017

Должно ли это быть исключением, или вы могли бы использовать это:

      case None => HttpResponse(StatusCodes.NotFound)
person stephan14x    schedule 25.07.2017