我有两个Future,我想恢复其中之一的异常:
def getId(): Future[Either[Exception, Id]] = ...
def result(): Future[Result] = ...我尝试过这样的东西:
for {
id <- getId()
r <- result(id, param, param)
} yield {
r
} recover {
case e => println(e.getMessage)
}有人能帮我吗?
在此之前,非常感谢。
发布于 2014-11-04 03:54:57
您应该在正在处理的val上进行恢复,而不是在for上。如果抛出异常,下面的代码将id和r设置为0。
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
}
}https://stackoverflow.com/questions/26721505
复制相似问题