ply propagates a C++
  exception into the framework. The framework usually does not catch the
  exception so that the state machine client can handle it. Note that, after
  doing so, the client can no longer use the state machine object because it
  is either in an unknown state or the framework has already reset the state
  because of the exception (e.g. with a scope guard). That is, by their
  nature, state machines typically only offer basic exception safety.<br>
  However, error handling with traditiona