gpt4 book ai didi

scala - 如何在 play framework 2.4 中捕获异常

转载 作者:行者123 更新时间:2023-12-02 03:24:23 26 4
gpt4 key购买 nike

我正在尝试弄清楚如何在 Play Framework 2.4 中的异步操作调用的函数中捕获 future 的异常。但是,我使用 recover 获得的代码似乎从未执行过 - 我总是收到执行异常页面而不是 Ok 响应。

Action 代码为:

def index = Action.async {
cardRepo.getAll()
.map {
cards => Ok(views.html.cardlist(cards))
}.recover{
case e: Exception => Ok(e.getMessage)
}
}

cardRepo.getAll 中的代码(我硬编码了一个 throw new Exception 用于实验)是:

def getAll(): Future[Seq[Card]] = {

implicit val cardFormat = Json.format[Card]

val cards = collection.find(Json.obj())
.cursor[Card]()
.collect[Seq]()

throw new Exception("OH DEAR")

cards
}

我在 Stack Overflow 上看到过类似的问题,但我看不出我做错了什么。

最佳答案

谢谢 Mon Calamari - 我想我现在明白了。 Future 来自 collection.find,所以如果里面有错误,我的代码会工作,但因为我已经把它放在它上面的函数中,所以那时没有 Future。

关于scala - 如何在 play framework 2.4 中捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31186971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com