4

我在 Enterprise Architect 中有一个类图。

我的一个类有一些方法,我希望我的方法抛出异常。有谁知道我该怎么做?

与附加图像一样,我有接口(HsaInterface),它有两种方法,我希望两者都抛出异常。

图片展示类

在此处输入图像描述

4

1 回答 1

7

EA 对操作引发的异常的表示有点混乱,而且文档记录也很差。本质上,异常由操作上的单个标记值表示,在逗号分隔的列表中携带异常类的(非限定)名称。

例如,parseLineJava 类中的方法com.sun.activation.registries.MailcapFile会有一个throws带有 value的标签MailcapParseException,IOException

如果您在类中创建操作,则该操作不会自动获取异常标记。这是因为标签名称取决于实现语言;它是 SystemC 的“抛出”,而 C# 和 Java 是“抛出”(无论如何,根据手册,我还没有验证这一点)。但是,您可以自己创建标签。

如果您对一组 Java 类进行逆向工程,则会在模型中填充异常标记。这可能是了解其使用方式的最简单方法。

这个仅名称的链接显然非常薄弱。它用于代码生成,但如果更改异常类的名称,则需要手动更改标记值。EA 在代码生成期间不会检查列出的类名是否存在或是否在范围内,它只是将名称写入方法签名中。

此外,操作的标记值不能显示在图表中。因此,虽然您可以向操作添加例外,但您只能通过查看操作的属性来查看它们。

有趣的是,EA 的数据模型确实在 t_operation 表中包含一个 Throws 列(因此,在 EA 的 API 的 Method 类中包含一个 Throws 属性)。这似乎没有使用。

所以它归结为你的模型的目的。如果您将使用 EA 支持异常的一种语言生成代码,则需要throws手动添加标签。如果您想在图表中显示异常,则该方法行不通。出于这样的目的,您最好从操作中绘制一个依赖项到异常类并将其定型为“抛出”。

为了将连接器锚定到操作,像往常一样从类中绘制它,然后右键单击要锚定的末端附近的连接器并选择链接到元素特征。

于 2011-10-04T18:59:10.217 回答