Scala,恢复嵌套的期货?
Scala, recover nested Futures?
我在 Scala 中有一些嵌套的 Futures。我想知道——我可以使用一个 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?
只要像示例中那样将所有嵌套的 Futures
展平,在哪个级别抛出异常并不重要。如果在您的嵌套结构中的某个点抛出异常,那么您将停止进一步下降。由于扁平化,抛出的异常将被提升到顶层。从那里您可以使用 recover
方法处理异常。
我在 Scala 中有一些嵌套的 Futures。我想知道——我可以使用一个 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?
只要像示例中那样将所有嵌套的 Futures
展平,在哪个级别抛出异常并不重要。如果在您的嵌套结构中的某个点抛出异常,那么您将停止进一步下降。由于扁平化,抛出的异常将被提升到顶层。从那里您可以使用 recover
方法处理异常。