【发布时间】:2016-02-01 09:35:18
【问题描述】:
我试图使用scala.concurrent.Future 重现此问题How do I get hold of exceptions thrown in a Scala Future?,我期待异常被吞下,但它似乎没有发生。有什么解释吗?
import scala.concurrent._
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext.Implicits.global
def runWithTimeout[T](timeoutMs: Long)(f: => Future[T]) : T = {
Await.result(f, timeoutMs.millis)
}
runWithTimeout(50) { Future { "result" } }
runWithTimeout(50) { Future { throw new Exception("deliberate") } }
【问题讨论】: