梅雨の末期、彼方此方で豪雨のニュースを耳にします。
皆様のお住まいの地域はご無事でしょうか?
本日は、例外について解説致します。
6-7 例外
例外処理の表記を図A11(a)にします。
保護ノードで例外が発生した場合は、直近の構造化(アクティビティ)ノード内のすべてのトークンは終了し、例外のタイプに応じて、HandlerBodyが実行されます。
もし、直近のノード内に該当するHandlerがない場合は、より上位のノードに処理が渡されて行きます。
最上位のシステムレベルへ行っても該当するHandlerが見つからない場合のシステムの振舞いは無規定です。(プロファイルでこのようなケースが発生した場合の処理を指定する事ができます。)
(a)のジグザグ線の表記は、(b)で示される形で表記する事が可能です。
HandlerBodyの処理終了後は、保護ノードの後続ノードに処理が渡ります。(この指定を行なうためのエッジは記述する必要はありません。)
図(c)は、ExceptionHandlerの例です。
X/Yを計算する際、0による割り算が発生した場合は、右上のHandlerBodyが呼ばれ、Zに”無限”を代入後、印刷のノードへ処理が渡ります。
X とYのかけ算の際、桁あふれ例外が発生した場合も同様に、例外処理後は、保護ノードの次のノードである印刷のノードへ処理が渡ります。
図 A11