Exceptions

In certain situations, exceptions of type sxy::exception are thrown by yasmine.

When exceptions are thrown

  • If there is a conflict between transitions before execution, an exception is thrown.

  • When transition steps are built and a history is reached that belongs to a state that has not been active before and the history has no default transition, an exception is thrown.

  • When transition steps are built and a junction is reached that has no enabled transition, an exception is thrown.

  • If a transition emanating from a choice is enabled, but the compound transition cannot be built, an exception is thrown.

  • If execution arrives at a choice pseudostate and there are no enabled outgoing transitions, an exception is thrown.

  • When the timed based event creator is used to fire events, but the creator was not started before it is used, an exception is thrown.

  • When a second deep history is added to a composite state, an exception is thrown (because a composite state can have at most one deep history).

  • When a second shallow history is added to a composite state, an exception is thrown because a composite state can have at most one shallow history).

Other exceptions

Behavior exceptions are thrown for the asynchronous simple state when an exception appears on executing asynchronous behavior.