首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >For- exceptions with exceptions

For- exceptions with exceptions
EN

Stack Overflow用户
提问于 2014-11-04 03:24:57
回答 1查看 133关注 0票数 3

我有两个Future,我想恢复其中之一的异常:

代码语言:javascript
复制
def getId(): Future[Either[Exception, Id]] = ...
def result(): Future[Result] = ...

我尝试过这样的东西:

代码语言:javascript
复制
for {
  id <- getId()
  r <- result(id, param, param)
} yield {
  r
} recover {
  case e => println(e.getMessage)
}

有人能帮我吗?

在此之前,非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2014-11-04 03:54:57

您应该在正在处理的val上进行恢复,而不是在for上。如果抛出异常,下面的代码将id和r设置为0。

代码语言:javascript
复制
for {
  id = getId()
  id.recover {
    case e => {
      println(e.getMessage)
      0
    }
  }
  r = result(id, param, param)
} yield r.recover {
    case e => {
      println(e.getMessage)
      0
    }
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26721505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档