1. A method of handling an exception in a parallel system, comprising: constructing a task object; executing a method with the task object; catching an exception with the task object during execution of the method; and causing the exception to be propagated in response to the task object becoming inaccessible without the exception having been observed.