Les événements se produisent uniquement au sein des processus racine et des activités complexes. Les différents types d'activité de gestion d'exception sont les suivants : erreur, dépassement de délai et compensation.
- Les exceptions sont provoquées par les activités <<ThrowException>> ou correspondent aux erreurs renvoyées par les opérations appelées par les activités d'appel de service. La gestion d'exception est possible lorsque l'activité complexe contient une activité Exception ou un appel de service. Ces activités sont modélisées comme suit :
- Gestionnaire d'exception - Processus composite ayant le stéréotype <<ExceptionHandler>>. Le gestionnaire d'exception doit être au même niveau que l'activité complexe et être connecté par un flux à cette activité.
- Flux connecteur - Flux avec un événement <<Fault>>.
- Gestionnaire d'exption par défaut - Flux avec stéréotype <<DefaultExceptionHandler>>.
- La gestion de dépassement de délai est possible uniquement lorsque l'activité complexe contient des temporisations (timers). Ces activités sont modélisées comme suit :
- Gestionnaire de dépassement de délai - Processus composite ayant le stéréotype <<TimeoutHandler>>. Le gestionnaire de dépassement de délai doit être au même niveau que l'activité complexe et connecté à l'aide d'un flux à cette activité.
- Flux connecteur - Flux avec un événement <<Timer>>.
- La gestion de compensation est exécutée lorsqu'une activité Compensate est exécutée dans la portée externe de l'activité complexe à compenser. Une activité Compensate doit être utilisée au sein d'un gestionnaire d'exception ou d'un gestionnaire de compensation ; elle ne peut pas être liée à plusieurs activités complexes. Ces activités sont modélisées comme suit :
- Gestionnaire de compensation - Processus composite ayant le stéréotype <<CompensationHandler>>. Le gestionnaire de compensation doit se trouver au même niveau que l'activité complexe et être connecté à l'aide d'un flux à cette activité.
- Flux connecteur - Flux avec un événement <<Compensation>>.