コラボレーション API には、コラボレーションで発生する例外を表現するための、例外オブジェクト が用意されています。
図 55 に示すように、この例外オブジェクトは、例外を発生させた条件についての情報を含んでいます。
図 55. CollaborationException 例外オブジェクト

この例外オブジェクトは、CollaborationException クラスのインスタンスで、このクラスは Java Exception クラスの拡張です。表 43 に、例外オブジェクト内の情報を取得するために CollaborationException クラスに用意されている accessor メソッドを示します。
表 43.
例外オブジェクト内の情報
メンバー
| accessor メソッド
|
例外タイプ
| getType()
|
例外サブタイプ
| getSubType()
|
メッセージ・テキスト
| getMessage()、toString()
|
メッセージ番号
| getMsgNumber()
|
- 注:
- 例外が発生すると、コラボレーション・ランタイム環境により、currentException と呼ばれるシステム変数に例外についての情報が設定されます。
currentException 変数は CollaborationException クラスのインスタンスです。
したがって、表 43 のメソッドを使用して、currentException 変数から例外情報を取得できます。
コラボレーション例外の原因を識別するために、例外オブジェクトには、表 44 にリストされている例外タイプ の 1 つが含まれています。
例外タイプは、Java 静的定数で宣言されたストリング値です。
表 44. 例外タイプ
例外タイプ定数
| 説明
|
AnyException
| 任意のタイプの例外。2 つの例外分岐があり、1 つは特定タイプの例外をテストし、もう 1 つはAnyException をテストする場合、特定タイプの例外をテストする分岐が先に検査されます。現在の例外が特定の例外と一致しない場合、AnyException についてテストする分岐が次に検査されます。
|
AttributeException
| 属性のアクセス問題。例えば、コラボレーションが、String 属性に対して getDouble() を呼び出す場合や、存在しない属性に対して getString() を呼び出す場合など。
|
JavaException
| コラボレーション API の一部ではない Java コードに関する問題。
|
ObjectException
| メソッドに渡された無効なビジネス・オブジェクト。
|
OperationException
| サービス呼び出しが適切に設定されませんでした。あるいは送信されませんでした。
|
ServiceCallException
| コラボレーション以外の理由によって失敗したサービス呼び出し。例えば、コネクターまたはアプリケーションが使用できない場合や、ネットワークに障害がある場合など。
|
SystemException
| InterChange Server Express システムの内部エラー。
|
TimeoutException
| 同期または非同期インバウンド・サービス呼び出しのタイムアウト。
|
TransactionException
| トランザクション・コラボレーションの、トランザクションの振る舞いに関連するエラーです。例えば、ロールバックに失敗しました。あるいは、コラボレーションが差し戻しを適用できませんでした。
|
- 注:
- 決定ノードで例外分岐を定義する場合、例外分岐の条件で検査する例外タイプを指定します。詳細については、例外のキャッチを参照してください。
これらの例外タイプの一部には、例外を発生させる多くの状態があります。このような例外タイプの場合、例外オブジェクトに通常、例外サブタイプ が含まれ、例外の原因についての追加情報が提供されます。例外サブタイプを使用する 2 つの主な例外タイプは、JavaException と ServiceCallException です。詳細については、getSubType()を参照してください。
