diff --git a/overviews/core/_posts/2012-09-20-futures.md b/overviews/core/_posts/2012-09-20-futures.md index bfbdaeb262..9c3c5bba2b 100644 --- a/overviews/core/_posts/2012-09-20-futures.md +++ b/overviews/core/_posts/2012-09-20-futures.md @@ -686,15 +686,16 @@ keeping this exception, the associated value is stored into the future or a prom 2. `ExecutionException` - stored when the computation fails due to an unhandled `InterruptedException`, `Error` or a `scala.util.control.ControlThrowable`. In this case the -`ExecutionException` has the unhandled exception as its cause. These -exceptions are rethrown in the thread executing the failed -asynchronous computation. The rationale behind this is to prevent -propagation of critical and control-flow related exceptions normally -not handled by the client code and at the same time inform the client -in which future the computation failed. - -See [`NonFatal`](http://www.scala-lang.org/api/current/index.html#scala.util.control.NonFatal$) -for a more precise semantics description. +`ExecutionException` has the unhandled exception as its cause. The rationale +behind this is to prevent propagation of critical and control-flow related +exceptions normally not handled by the client code and at the same time inform +the client in which future the computation failed. + +Fatal exceptions (as determined by `NonFatal`) are rethrown in the thread executing +the failed asynchronous computation. This informs the code managing the executing +threads of the problem and allows it to fail fast, if necessary. See +[`NonFatal`](http://www.scala-lang.org/api/current/index.html#scala.util.control.NonFatal$) +for a more precise description of the semantics. ## Promises