このトピックで
例外処理では、コマンド内で例外が発生した場合に実行するコマンドを設定することができます。
例外処理コマンドを選択すると、「Try」、「Catch」、「Finally」の3つのサブノードが表示されます。 各ノードではサブコマンド(各ノード内で設定するコマンド)が追加できます。
- Tryノードのサブコマンドには例外が発生する可能性があるコマンドを設定します。もし、このノード内のサブコマンドで例外が発生した場合、そのコマンド以降のTryノード内のサブコマンドは実行されず、Catchノードのサブコマンドが実行されます。
- CatchノードのサブコマンドにはTryノードで例外が発生した場合に実行したいコマンドを設定します。Tryノードで例外が発生しなかった場合、このノードのコマンドは実行されません。
- FinallyノードのサブコマンドはTryノード、Catchノードどちらかのサブコマンドが終了した後に最後に実行されます。
Catchノードでは、発生した例外に関する「例外コード」と「例外メッセージ」を変数に格納し、以降のコマンド(Catchノードのサブコマンド、Finallyノードのサブコマンド、例外処理コマンドより後のコマンド)で変数として使用できます。
※変数名の既定値は例外コード「ExceptionCode」、例外メッセージ「ExceptionMessage」です。変数名は変更可能です。
コマンドが例外なく実行されると、例外コードに設定した変数の値は「0」になります。
- Tryノードで例外が発生することなく実行された場合、返される結果はTryノードから取得されます。
- Tryノードで例外が発生した場合、返される結果はCatchノードから取得されます。
- Finalノードはコマンドを実行するだけで、結果は返しません。
ヒント:
- リターン(コマンドの終了)は、Finallyノードでは使用できません。
- Tryノードのサブコマンド内で、あるコマンドの実行中に例外が発生し、かつ「変数の設定」コマンドを例外が発生したコマンドの後に設定していた場合、「変数の設定」コマンドは実行されないため、後続のコマンドで使用しているその変数は検出されません。
- Tryノードのサブコマンド内で、「リターン」コマンドや「ストアドプロシージャーの呼び出し」コマンドなど、リターンコードを返却するコマンドにおいて、例外となるリターンコード(例えば「0」以外)が返却されると、例外が発生しCatchノードのサブコマンドが実行されます。