我在 Scala 中有一些嵌套的 Future。我想知道 - 我可以使用一个 recover
来捕获所有可抛出的东西,还是每个 Future 都应该有自己的恢复?
想象一下 method1 和 method2 都生成一个 Future[Option[A]]
,
method1.flatMap {
case Some(object1) =>
method2(object1).map {
case Some(object2) => ...
case None => ...
}.recover { case t => .... } <--- DO I NEED THIS?
case None => ....
}.recover { case t => ... } <--- OR THIS ALONE IS ENOUGH?
最佳答案
只要像示例中那样展平所有嵌套的 Future
,在哪个级别引发异常并不重要。如果嵌套结构中的某个点抛出异常,那么您将停止进一步向下下降。由于扁平化,抛出的异常将被提升到顶层。从那里您可以使用 recover
方法处理异常。
关于Scala,恢复嵌套 future ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32275691/