Exception Catching and Member Functions of Task
As tasks are executed on separate threads, the exceptions that they throw cannot be caught by the thread that started them. Therefore, the exceptions that are thrown are automatically caught by the tasks themselves to be rethrown later when
Task member functions like
yieldForce() are called. This enables the main thread to catch exceptions that are thrown by a task.