У меня есть простая функция действия:Как вернуть исключение из функции действия через внутреннюю функцию?
def someActionFunc() = Action.async { request =>
myService.doSomething1().map { res =>
logger.debug(res.getMessageId)
Ok(res.getMessageId)
}.recover {
case ex =>
logger.error(s"fail:", ex)
BadRequest(s"fail with error: ${ex.getMessage}")
}
}
doSomething1
возвращает Future
, и в doSomething1
я звоню некоторые другие функции doSomething2
, которая возвращает некоторый объект и исключение там произошло, но я не знаю, как возвращает ошибку, которая произошла в doSomething2
через doSomething1
к функции действия (someActionFunc
), потому что я хочу, чтобы вернуть пользователю fail with error: my reason
Так что я попытался в doSomething2
сделать что-то вроде:
def doSomething2(someCondition: Boolean) = {
if (someCondition){
throw new RuntimeException("my reason")
}
}
но я получаю выброшенным, как я могу правильно вернуть ошибку пользователю, чтобы запустить функцию действия?