Не существует стандартного способа моделирования обработки исключений на диаграмме последовательности. Однако обработка исключений часто имеет решающее значение. Вот как я это представляю. Помните, что вы можете получить некоторую свободу в использовании UML. Это язык, и поэтому он меняется с течением времени. Пока ваш читатель понимает идею, которую вы хотите выразить, все идеально.
Приведенная выше диаграмма создана с
Web Sequence
бесплатным расширением Chrome (с открытым исходным кодом). Вы можете получить его здесь: http://bit.ly/web-sequence-ws или с официального сайта: http://bit.ly/zenuml.
Чтобы проверить это, вы можете просто вставить следующий код в редактор кода указанного выше плагина или на сайт.
JobTask.Run() { try() { Action.Execute() { InternalException.throw() } } InternalException.Catch() { Logger.Error() HighLevelException.throw() } }
Это демонстрирует, что у нас есть try
блок. Внутри этого блока мы выполняем Action.Execute()
, в который может быть брошено InternalException
. Затем мы перехватываем ее, регистрируем ошибку и повторно генерируем HighLevelException
, что является довольно типичной стратегией обработки исключений.