Рисунок схемы последовательностей попробуйте блок catch в UML

У меня есть вопрос, как я могу нарисовать блок try catch на диаграмме последовательности в UML? Могу ли я нарисовать попытку как обычный случай, а поймать как альтернативный случай или нет?

Я использую Visio для создания диаграмм последовательности UML.


person Lisa    schedule 08.11.2014    source источник


Ответы (2)


Диаграмма последовательности UML не может визуализировать исключения. Однако есть «обходные пути», см.:

person Bela Vizer    schedule 09.11.2014
comment
@Lisa, если для вашей модели важны исключения и альтернативы, вы можете использовать нотацию interrupting edge диаграммы действий UML вместе с диаграммой последовательности UML, например, в Обзорная диаграмма взаимодействия UML или в вашем индивидуальном наборе в соответствии с uml-diagrams.org/uml-25-diagrams.html .. Спецификация UML не исключает смешивания различных видов диаграмм.. - person xmojmr; 09.11.2014

Не существует стандартного способа моделирования обработки исключений на диаграмме последовательности. Вот как я с этим справляюсь:

введите здесь описание изображения

Приведенная выше диаграмма создана с помощью бесплатного (с открытым исходным кодом) расширения Chrome Web Sequence. Вы можете получить его здесь: https://chrome.google.com/webstore/detail/web-sequence/kcpganeflmhffnlofpdmcjklmdpbbmef или с официального сайта: https://www.zenuml.com< /а> . Чтобы проверить это, вы можете просто вставить следующий код в редактор кода вышеуказанного плагина или на сайт.

JobTask.Run() {
  try() {
    Action.Execute() {
      InternalException.throw()
    }
  }
  InternalException.Catch() {
    Logger.Error()
    HighLevelException.throw()
  }
}

Это демонстрирует, что у нас есть блок try. В этом блоке мы выполняем Action.Execute(), в котором может быть сгенерировано InternalException. Затем мы перехватываем его, регистрируем ошибку и повторно выбрасываем HighLevelException, что является довольно типичной стратегией обработки исключений.

person Devs love ZenUML    schedule 19.10.2017