我在 Enterprise Architect 中有一个类图。
我的一个类有一些方法,我希望我的方法抛出异常。有谁知道我该怎么做?
与附加图像一样,我有接口(HsaInterface),它有两种方法,我希望两者都抛出异常。
图片展示类
我在 Enterprise Architect 中有一个类图。
我的一个类有一些方法,我希望我的方法抛出异常。有谁知道我该怎么做?
与附加图像一样,我有接口(HsaInterface),它有两种方法,我希望两者都抛出异常。
图片展示类
EA 对操作引发的异常的表示有点混乱,而且文档记录也很差。本质上,异常由操作上的单个标记值表示,在逗号分隔的列表中携带异常类的(非限定)名称。
例如,parseLine
Java 类中的方法com.sun.activation.registries.MailcapFile
会有一个throws
带有 value的标签MailcapParseException,IOException
。
如果您在类中创建操作,则该操作不会自动获取异常标记。这是因为标签名称取决于实现语言;它是 SystemC 的“抛出”,而 C# 和 Java 是“抛出”(无论如何,根据手册,我还没有验证这一点)。但是,您可以自己创建标签。
如果您对一组 Java 类进行逆向工程,则会在模型中填充异常标记。这可能是了解其使用方式的最简单方法。
这个仅名称的链接显然非常薄弱。它用于代码生成,但如果更改异常类的名称,则需要手动更改标记值。EA 在代码生成期间不会检查列出的类名是否存在或是否在范围内,它只是将名称写入方法签名中。
此外,操作的标记值不能显示在图表中。因此,虽然您可以向操作添加例外,但您只能通过查看操作的属性来查看它们。
有趣的是,EA 的数据模型确实在 t_operation 表中包含一个 Throws 列(因此,在 EA 的 API 的 Method 类中包含一个 Throws 属性)。这似乎没有使用。
所以它归结为你的模型的目的。如果您将使用 EA 支持异常的一种语言生成代码,则需要throws
手动添加标签。如果您想在图表中显示异常,则该方法行不通。出于这样的目的,您最好从操作中绘制一个依赖项到异常类并将其定型为“抛出”。
为了将连接器锚定到操作,像往常一样从类中绘制它,然后右键单击要锚定的末端附近的连接器并选择链接到元素特征。