Scala如何在将来恢复异常

时间:2016-07-13 04:36:04

标签: scala exception-handling concurrent.futures

这是我的问题! 当我在for表达式中使用多个未来任务时,我对异常恢复的结果感到困惑。

object ForTest {    
  def ft1(n: Int): Future[Int] = Future(n*2)
  def ft2(n: Int): Future[Int] = Future(60/n)
  def main(args : Array[String]) : Unit = {
    val n = 0
    val res =
      for {
        a1 <- ft1(n)
        a2 <- ft2(n)
      } yield (a1,a2)    
    res.map{ x =>
      println(s"x=$x")
    }.recover{
      case t: Throwable =>
        println(s"exception ${t.getStackTrace}")
    }    
  }
}

以上是我的代码。有时它打印出异常,有时不打印,我完全糊涂了。任何人都可以帮助我吗?

0 个答案:

没有答案