6

嗨,我最近正在对 UML 的某个项目进行逆向工程,并且陷入了无法得出结论的地步。代码相当简单:

            ...
            try
            {
                sj = SendingJob.DeserializeXmlString("....");
                trcSrc.TraceInfo("....");
            }
            catch (FormatException)
            {
                trcSrc.TraceError("....");

                return "00 - Job Content Bad Format.";
            } ...

首先,我将代码建模为:


替代文字


但是在阅读了以下文字后:

“如果在动作执行过程中发生异常,则放弃执行,并且该动作没有输出。如果动作有异常处理程序,则处理程序与异常信息一起执行。当异常处理程序执行时,其输出为可用于受保护节点之后的下一个操作,就像受保护节点已完成执行一样。

...但问题是我的异常处理程序通过返回一个值并停止活动来退出 catch 块。我试图将异常节点链接到活动最终节点,但我的工具拒绝这样做,而且我很确定这不是正确的方法。

所以我的问题是:如何对一个动作抛出异常并且其处理程序终止活动的活动图进行建模?

4

1 回答 1

4

由于我不允许发布图像,但我将尝试描述我的解决方案 :) 在您的异常处理程序中,包含一个表示其功能的操作。然后,您可以将该操作链接到活动图的终止节点。

于 2012-05-07T11:31:00.817 回答