TryCatch ノード

このトピックには、以下のセクションが含まれています。

目的

例外処理用の特殊なハンドラーを提供するには、TryCatch ノードを使用します。 まず入力メッセージは、このノードの try ターミナルにルーティングされます。 これは、メッセージ・フローのエラー処理ノードではない残りのノードに接続する必要があります。 ダウンストリーム・ノード (Throw ノードの可能性があります) から例外が発生すると、TryCatch ノードはそれをキャッチして、オリジナル・メッセージをその catch ターミナルにルーティングします。 catch ターミナルを別のノードに接続して、例外の後にメッセージのエラー処理を行えるようにします。

このようにして、例外はメッセージ・フローの処理を停止し、進行中のトランザクションに影響が出ないようにします。 catch 出力ターミナルが接続している場合、メッセージはそこに伝搬されます。 catch ターミナルが接続していない場合、メッセージは廃棄されます。

ワークベンチでは、TryCatch ノードは次のアイコンで表されます。

TryCatch ノード・アイコン

メッセージ・フロー内でのこのノードの使用

このノードが使用される方法に関しては、次のサンプルを参照してください。

Compute ノードを使用して合計を計算するときに Throw および TryCatch ノードを使用します。 計算された合計が「Total (合計)」フィールドの最大値を超えるときにシステム管理者に送信されるメッセージを作成できます。

TryCatch ノードの構成

TryCatch ノードのインスタンスをメッセージ・フローに入れると、TryCatch ノードを構成することができます。 エディター・ビューでノードを右マウス・ボタンでクリックし、「プロパティー (Properties)」をクリックします。 ノードの基本プロパティーが表示されます。

値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、プロパティー・ダイアログにアスタリスクが表示されます。

以下のように、TryCatch ノードを構成します。

  1. 簡略説明または詳細説明 (あるいはその両方) を入力するには、プロパティー・ダイアログ・ナビゲーターの「説明 (Description)」を選択します。
  2. 「適用」をクリックすると、プロパティー・ダイアログを閉じずに TryCatch ノードが変更されます。 「OK」をクリックすると、変更を適用してプロパティー・ダイアログを閉じます。

    「キャンセル (Cancel)」をクリックすると、ダイアログを閉じてプロパティーの変更をすべて破棄します。

次に、ノードのターミナルを接続して、このメッセージ・フローでの操作方法を決定する必要があります。

ターミナルの接続

TryCatch ノードには、その操作に影響を与える構成可能なプロパティーがありません。 出力ターミナルをメッセージ・フロー内の後続のノードに接続することによって、作動方法を決定します。

  1. try ターミナルを、このメッセージの処理の通常 (エラーではない) のフェーズを提供する、ノード・シーケンス内の第 1 のノードに接続します。 これには、有効な処理を実行する 1 つ以上のノードのシーケンスを使用できます。 出力ノードで終了することができますが、そうしなくても構いません。
  2. catch ターミナルを、このメッセージ・フローでエラー処理を提供する、ノード・シーケンス内の第 1 のノードに接続します。 これには、有効な処理を実行する 1 つ以上のノードのシーケンスを使用できます。 出力ノードで終了することができますが、そうしなくても構いません。

    メッセージ・フローで例外が発生する場合には、Throw ノードまたは ESQL THROW ステートメントを明示的に使用するか、メッセージ・フローが処理するようにプログラムされていないエラーが検出された場合にブローカーが暗黙的な例外を発生することにより、制御が TryCatch ノードに戻ります。

    メッセージは catch ターミナルを経由して伝搬され、設計したエラー処理が実行されます。 このターミナルを経由して伝搬されたメッセージには、例外が発生したポイントにおける内容が入っています。 それには、ExceptionList の例外についての詳しい説明も含まれます。

ターミナルおよびプロパティー

TryCatch ノードのターミナルについては、次の表に説明されています。

ターミナル 説明
In ノードが処理するメッセージを受け入れる入力ターミナル。
Catch 例外がダウンストリームで発生し、ノードによってキャッチされた場合に メッセージが伝搬される出力ターミナル。
Try キャッチされない場合に、メッセージが伝搬される出力ターミナル。

以下の表でノードのプロパティーを説明します。M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、プロパティー・ダイアログにアスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを bar ファイルに追加してデプロイするとき、値を変更できます)。

TryCatch ノードの「説明 (Description)」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
簡略説明 (Short Description) いいえ いいえ   ノードの簡単な説明
詳細説明 (Long Description) いいえ いいえ   メッセージ・フロー内のノードの目的を説明するテキスト

関連概念
メッセージ・フロー
ExceptionList ツリー

関連タスク
使用するノードの決定
メッセージ・フローのエラー処理

関連資料
Throw ノード
Trace ノード
THROW ステートメント