The TaskManager catches and handles all types of exceptions right now (all Throwables). The intention behind that is:
- Many Error subclasses are recoverable for the TaskManagers, such as failure to load/link user code
- We want to give eager notifications to the JobManager in case something in a task goes wrong.
However, there are some exceptions which should probably simply terminate the JVM, if caught in the task thread, because they may leave the JVM in a dysfunctional limbo state:
These are basically the subclasses of VirtualMachineError, except for StackOverflowError, which is recoverable and usually recovered already by the time the exception has been thrown and the stack unwound.