ストラタジーナム メニュー

2006年7月20日木曜日

UML中級講座 第73回 例外

梅雨の末期、彼方此方で豪雨のニュースを耳にします。
皆様のお住まいの地域はご無事でしょうか?
本日は、例外について解説致します。

6-7 例外

例外処理の表記を図A11(a)にします。
保護ノードで例外が発生した場合は、直近の構造化(アクティビティ)ノード内のすべてのトークンは終了し、例外のタイプに応じて、HandlerBodyが実行されます。
もし、直近のノード内に該当するHandlerがない場合は、より上位のノードに処理が渡されて行きます。
最上位のシステムレベルへ行っても該当するHandlerが見つからない場合のシステムの振舞いは無規定です。(プロファイルでこのようなケースが発生した場合の処理を指定する事ができます。)

(a)のジグザグ線の表記は、(b)で示される形で表記する事が可能です。

HandlerBodyの処理終了後は、保護ノードの後続ノードに処理が渡ります。(この指定を行なうためのエッジは記述する必要はありません。)

図(c)は、ExceptionHandlerの例です。
X/Yを計算する際、0による割り算が発生した場合は、右上のHandlerBodyが呼ばれ、Zに”無限”を代入後、印刷のノードへ処理が渡ります。
X とYのかけ算の際、桁あふれ例外が発生した場合も同様に、例外処理後は、保護ノードの次のノードである印刷のノードへ処理が渡ります。


図 A11