为什么打印“成功”而不是“失败”?如何捕捉Future.failed?
object HelloScala extends App{
val f = future
f.map { result => println("Success")
}.recover { case e =>
println(e.getMessage)
}
def future = Future {
Future.failed(new Throwable("Failure"))
}
Thread.sleep(10000)
}
答案 0 :(得分:2)
查看f
的类型。
val f: Future[Future[_]] = future
内部Future
失败,但外部Future
以Success
完成。