我正在使用构造函数Future.failed创建一个失败的未来,但失败的未来仍然会在我认为不应该抛出异常。
session.loadAll方法会抛出异常。
我也在使用Play Framework
答案 0 :(得分:2)
我认为Future.failed
没有抛出异常。看起来是这样,因为堆栈跟踪是在创建异常的地方生成的。
因此,如果您使用类似Await.result
的方法或其他假设未来成功的方法,您将看到重新抛出异常,但堆栈跟踪将使其看起来好像它是在Future.failed
抛出的。
答案 1 :(得分:1)
首先,我不太清楚为什么你在这里使用未来,因为它们看起来不像异步调用。
然而,为了回答你的问题,我不完全确定这里发生了什么,但看起来你需要处理异常。未来的消费者应使用Future.onComplete
和模式匹配失败类型,或Future.onFailure
和模式匹配Throwable类型。
Scala关于未来的文档:http://docs.scala-lang.org/overviews/core/futures.html