Ошибка (Error)

Описание

Событие типа Ошибка используется для получения или отправления ошибки с заданным кодом. Ошибка не является исключением, которое представляет из себя техническую ошибку, и должно быть обработано другим образом.
Тип события Ошибка должен использоваться только для "бизнес-ошибок" (т.е. ошибок бизнес-процесса), а не для технических ошибок в результате исполнения модели процесса.

Графическое представление

Ошибка изображается внутри события в виде молнии:
Error

Увеличить

XML-представление

Пример XML-представления Ошибки в событии:
<bpmn2:errorEventDefinition id="b95b6605-0811-4480-b9f0-42c997c82dd3" errorRef="df314666-c9c7-4161-b742-006d96285d33"/>
Сама Ошибка представляет из себя элемент Error в коде модели (родитель - элемент "definitions"):
<bpmn2:error id="df314666-c9c7-4161-b742-006d96285d33" errorCode="ERROR" name="New Error"/>
В качестве errorCode также можно добавить название класса пользовательских исключений.

Таблица Event Definitions

При редактировании типа Ошибка в таблице "Event Definitions" появляется следующее окно:
Error

Увеличить

Поле "Error" содержит код ожидаемой ошибки. Можно выбрать код из выпадающего списка, который содержит все сохраненные в модели ошибки. Либо нажать на пиктограмму "плюс" (напротив поля "Error") и в открывшемся окне ввести код ошибки в поле "Error Code":
Error

Увеличить

На вкладке General необходимо ввести имя ошибки в поле "Name".
Поле "Data Type" не используется.

Особенности

  • Ошибка обрабатывается первым подходящим событием, ожидающим ее. Остальные триггеры не срабатывают.
  • При добавлении в Граничное Событие (Boundary Event) типа Ошибка поле "Cancel Activity" в свойствах события пропадает, т.к. в результате ошибки выполнение текущего элемента в любом случае будет прервано и поток будет перенаправлен.
  • ТипОшибка может быть добавлен в Стартовое Событие (Start Event) только, если оно стартует подпроцесс, а не сам процесс. При этом такое Стартовое Событие будет перехватывать ошибку в процессе, если заданная ошибка произойдет.
  • Если тип Ошибка добавлен в Конечное Событие (End Event), то после прихода в него, текущий поток исполнения завершится. Эта ошибка также может запустить дополнительное событие, которое ждет этот тип ошибки.
  • Если аттрибут "errorRef" не заполнен в типе Ошибка для Граничного События, то триггер сработает на любую ошибку.

Пример использования

Error

Увеличить

Error

Увеличить

Error

Увеличить

Error

Увеличить

Предыдущий раздел
Элемент Message
Следующий раздел
Элемент Signal
Была ли страница полезной?