1 つ上の実行レベルに例外を生成するためにコラボレーション例外を準備します。
構文
void raiseException(String exceptionType, String message) void raiseException(String exceptionType, int messageNum, String parameter[,...]) void raiseException (String exceptionType, int messageNum, Object[] paramArray) void raiseException(CollaborationException exceptionObject)
パラメーター
次の説明とコード例は、コラボレーション API 内で提供される必要があります。
注記
raiseException() メソッドは、1 つ上の実行レベルに例外を生成するためにコラボレーション例外を準備します。コラボレーション・ランタイム環境で raiseException() 呼び出しが実行されると、コラボレーションの実行が例外状態に変更され、アクティビティー・ダイアグラムのロジックが続行されます。生成された例外に対するアクティビティー・ダイアグラムの応答方法は、実行経路の終端ノードによって以下のように異なります。
この親ダイアグラムの次ノードが決定ノードの場合、コラボレーション・ランタイム環境で、生成された例外を処理するこの決定ノード内の実行分岐が検査されます。この親ダイアグラムは、currentException システム変数を使用して生成された例外にアクセスできます。
コラボレーション・ランタイム環境により未解決のフローが、生成された例外が含む任意の例外テキストと関連付けされます。この例外に例外テキストが含まれていない場合、コラボレーション・ランタイム環境はデフォルトのメッセージを使用します。
Scenario failed.
障害が発生したときには、単に失敗として終了させるのではなく、例外を明示的に生成させることを推奨します。コードによりコラボレーション・ランタイム環境に明示的に例外を生成すると、管理者は Flow Manager を使用して、未解決のフローの一部として例外テキストを表示できます。詳細については、例外の発生を参照してください。
raiseException() メソッドにはいくつかの形式があります。
この形式は、次のような例外オブジェクトを生成するのに便利です。
例
このセクションでは、raiseException() メソッドの各形式の例を示します。
raiseException(ServiceCallException, "Attempt to validate Customer failed.");
23 Customer update failed for CustomerID={1} CustomerName={2}
この raiseException() 呼び出しは、メッセージ 23 を検索し、fromCustomer 変数からメッセージの 2 つのパラメーター (カスタマー ID と名前) の値を検索して例外メッセージを生成します。
raiseException(OperationException, 23, fromCustomer.getString("CustomerID"), fromCustomer.getString("CustomerName"));
例えば、メッセージ・ファイルに次のメッセージ・テキストが含まれるとします。
2000 Collaboration Message: BOName: {1} with Verb: {2} encountered an undefined error.
次のコードは Objects のパラメーターの配列を作成し、そこに値をロードして raiseException() メソッドを呼び出します。
Object[] myParamArray = new Object[2]; myParamArray[0] = triggeringBusObj.getType(); myParamArray[1] = triggeringBusObj.getVerb(); raiseException(AnyException, 2000, myParamArray);
raiseException(currentException);