Представление EA исключений, генерируемых операцией, немного грязно, а также плохо документировано. По сути, исключение представляется в виде единственного тегового значения в операции, содержащего (неквалифицированные) имена классов исключений в списке через запятую.
Например, метод parseLine
в классе Java com.sun.activation.registries.MailcapFile
будет иметь тег throws
со значением MailcapParseException,IOException
.
Если вы создаете операцию в классе, эта операция автоматически не получает тег для исключений. Это потому, что имя тега зависит от языка реализации; это «throw» для SystemC и «throws» для C # и Java (в любом случае, согласно руководству, я этого не проверял). Однако вы можете создать тег самостоятельно.
Если вы перепроектируете набор классов Java, теги исключений будут заполнены в модели. Это может быть самый простой способ увидеть, как это используется.
Эта ссылка только на имя, очевидно, очень слабая. Он используется при генерации кода, но если вы измените имя класса исключения, вам нужно будет изменить значение тега вручную. EA не проверяет, существуют ли перечисленные имена классов или находятся в области действия при генерации кода, он просто записывает имена в сигнатуру метода.
Кроме того, помеченные значения для операций не могут быть отображены на диаграммах. Таким образом, хотя вы можете добавлять исключения к своим операциям, вы можете видеть их, только просматривая свойства операций.
Интересно, что модель данных EA включает столбец Throws в таблице t_operation (и, следовательно, атрибут Throws в классе Method в API EA). Это кажется неиспользованным.
Так что все сводится к цели вашей модели. Если вы будете генерировать код на одном из языков, где EA поддерживает исключения, вам нужно добавить тег throws
вручную. Если вы хотите показать исключения на диаграммах, этот подход не работает. Для этой цели лучше нарисовать зависимость от операции к классу исключений и стереотипировать ее как «бросает».
Чтобы прикрепить соединитель к операции, как обычно, выведите его из класса, затем щелкните правой кнопкой мыши соединитель рядом с концом, который вы хотите привязать, и выберите «Ссылка на элемент».