Как ръчно да хвърля HTTP 404 Not Found изключение в спрей/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?
    }
}

Бих искал да хвърля някакъв вид изключение тук, когато потребителят не е намерен, така че спрей/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