
John Fuller <jfuller <at> wernervas.com> writes:
I don't know if this is helpful, but in my state machine implementations I move to the next state on success and on failure remain in the same state and throw an exception event event at that state, users are expected to configure the machine to handle exceptions at each state to transition into error handling behavior or ignore the error, or whatever. Events are propagated recursively beginning at the most granular state, so that parent state changes are only succeed when substate changes succeed.
boost::fsm does exactly that and AFAICT Dave and I don't disagree on this behavior. What we disagree on is whether there should be a guarantee that exit actions are called under all circumstances or not. Regards, Andreas