Обозначение обработчика исключений UML - PullRequest
2 голосов
/ 06 мая 2020

Как обозначается обработчик исключений в диаграммах действий UML? Это просто молния? Или более того?

В соответствии со спецификацией v2.5.1, страница 404:

ExceptionHandler отображается путем рисования символа «молнии» от границы защищенного узла до маленький квадрат на границе ExceptionHandler.

Для меня это звучит как рекурсивное объяснение.

Согласно абстрактному синтаксису (стр. 403), обработчики исключений являются частью их protected node и связаны с handlerBody (ExecutableNode), exceptionInput (ObjectNode) и с exceptionTypes (Classifier).

Насколько я понимаю, обработчик исключений - это просто молния. HandlerBody, его objectNode и protectedNode - это отдельные сущности, использующие свою собственную нотацию.

Может ли кто-нибудь прояснить это?

Ответы [ 2 ]

3 голосов
/ 06 мая 2020

Формулировка в спецификациях иногда сбивает с толку. Молния - это InterruptFlow, а обработчик - ExecutableNode. В спецификациях довольно много примеров (стр. 403 UML 2.5)

Чтобы показать обработку исключений в AD, вам понадобятся четыре вещи:

enter image description here

  • Некоторые Action (я исключил потоки управления от / к другим действиям)
  • An InterruptibleActivityRegion (пунктирная граница)
  • An ExceptionHandler с a ObjectNode для принятия исключения
  • И InterruptFlow (показано болтом)

У вас может быть только болт go вне прерываемой области. И, как обычные потоки объектов, вы можете прикрепить защиту к этому болту.

Чтобы показать детали обработки исключений, вы можете поместить поведение вызова внутри обработчика. как показано в спецификациях на стр. 403 UML 2.5:

enter image description here

1 голос
/ 06 мая 2020

Вы правы, мне кажется, что абстрактный синтаксис более ясен, чем описание.

Обработчик исключений может показаться ребром. Он принадлежит своему источнику, он же protectedNode для обработчика исключений, и ссылается на свою цель, также известный как exceptionInput (принадлежит handlerBody) в случае обработчика исключений.

Конечно, в большинстве случаев protectedNode и handlerBody - это два разных Executable Node со своими собственными обозначениями (Structured Activity, Action, и т. Д. c.).

Последний пункт - exceptionType Классификатор, который является ссылкой на любой классификатор в вашей модели.

Надеюсь, это проясняет ситуацию. EBR

...