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