【发布时间】:2017-07-31 01:22:36
【问题描述】:
我有一个 JSON 操作,它返回一个非常简单的 JSON 对象,如下所示:
case class InsertResponse(success: Boolean, message: String)
我返回 JSON 的操作如下所示:
def insertUser = Action.async(BodyParsers.parse.json) { request =>
val userReq = request.body.validate[UserRequest]
userReq.fold(
errors => {
Future(Ok(....))
},
userR => {
val insertResultFut =
for {
user <- .......
} yield ....
Ok(insertResponse.toJson)
}
)
}
所以我想捕获 insertResultFut 调用可能抛出的某些异常,因为它调用了插入数据库的光滑数据库层。
如果用户的电子邮件重复,我想防止引发 PSQLException,我如何使用 futures 捕获此错误?
如果出现异常,并且它是重复键的 PSQLException,我想捕捉它并将我的 InsertResponse 成功标志设置为 false 等。
想法?
【问题讨论】:
标签: json scala playframework slick