How should the State Machine handle exceptions?
- The exception handling should feel very natural to a .NET Developer. The closest thing in the framework would be the way that Task<T> handles exceptions. See
Exception Handling (Task Parallel Library)
- The developer should have the option of providing an UnhandledExceptionAction via a Callback to the workflow application
- A state machine that has an unhandled exception
- The unhandled exception is thrown
- If an OnUnhandledException Func is provided, it is invoked on the workflow thread and the UnhandledExceptionAction value is handled by the Workflow runtime.
- If the Workflow is faulted, the exception is captured in the WorkflowException property and a StateMachineException is thrown on the calling thread as soon as possible with the WorkflowException set to the inner exception property