如何在Scala中捕获Future.failed?

时间:2018-03-07 00:17:59

标签: scala

为什么打印“成功”而不是“失败”?如何捕捉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)

}

1 个答案:

答案 0 :(得分:2)

查看f的类型。

val f: Future[Future[_]] = future

内部Future失败,但外部FutureSuccess完成。