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 に答える