Возможно ли исключение для исключения, избегая контекста Future
?Исключение Прохождение через scala.concurrent.Future?
Поскольку Future
«оценивает», как только он определен:
возможно для определения Future
бросить исключение, проходя через Future
контексте?
scala> Future { Thread.sleep(3000); println("3 seconds elapsed"); 100 }
res2: scala.concurrent.Future[Int] =
[email protected]
scala> 3 seconds elapsed
Я не мог придумать такой пример.
scala> Future { throw new Exception("Foo!") }
res3: scala.concurrent.Future[Nothing] =
[email protected]
StackOverflowError на самом деле считается нефатальным по какой-то причине – dwickern
Скаладоки говорят иначе: http://www.scala-lang.org/api/current/#scala.util.control.NonFatal$ Возможно, они неправильны? –
Я запустил этот REPL за то, что @dwickern сказал: 'scala> try {throw new StackOverflowError (" ... ")} catch {case NonFatal (e) =>" caught it "} java.lang.StackOverflowError: .. . at .liftedTree1 $ 1 (: 12) ... 33 elided' –