我有两个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)
}
有人可以帮助我吗?
非常感谢。
答案 0 :(得分:0)
您应该在正在处理的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
}
}