すべての問題は、WVCM によって
定義されている例外オブジェクトのサブクラスである例外オブジェクトによって
報告されます。
クライアントは、例外から以下の情報を入手できます。
- 理由コード (WVCM 列挙の拡張)。これは、報告される問題のタイプを分類します (例えば、WvcmException.ReasonCode.READ_FAILED)。
- 従属理由コード。これは、理由コードによる問題の分類をさらに細かく分類します (例えば、StpException.StpReasonCode.CONFLICT)。
- ロケールに依存しないメッセージ ID (カタログ索引) と、
報告される問題に特有の引数値。この情報は、ロギング目的に適していて、
ローカライズされたメッセージの生成にも使用できます。
- ネストされた例外のリスト。例外で報告される問題の原因となった下位の問題のそれぞれに関する例外のリストです。
- リソース アクセスの問題の場合、その問題に関係する主なリソース。通常は、失敗した操作のターゲットになったリソースです。
- プロパティ アクセスの問題の場合、その問題に関係する主なリソースのプロパティ。
- 複数のリソースを処理する操作の場合、操作が成功したリソースのリスト。
- 一部の選ばれた問題の場合、報告される問題に特有の追加情報が報告されます。
各操作には、一連の前提条件が定義されていて、操作が成功するには、それらの条件
が満たされていなければなりません。例えば、プロパティが読み取りの対象となるリソースは
存在していなければならない、作成するリソースと同じ名前のリソースが存在していてはならない、
チェックアウトするリソースはバージョン管理されていて、チェックインされていなければならない、といった条件があります。
このような前提条件に対する違反があると、操作は例外をスローすることになります。
操作は、リソースのコレクションに適用されることがよくあります。リソースのうちの 1 つで操作
が失敗すると、例外がスローされます (例外オブジェクトで成功も報告されます)。
リソースのプロパティまたはメタプロパティの読み取りあるいは書き込み中にサーバーで問題があっても、ClearQuest® CM API 操作は例外をスローしません。
代わりに、戻されるプロキシ内で
プロパティと例外が関連付けられます。問題のそのプロパティ値をクライアントがプロキシ
から抽出しようとしたときにのみ、例外がスローされます。クライアントは、プロパティ値を抽出する前に、プロキシを調べて、
問題の有無を判別し、スローされることなく例外を取得することも可能です。プロパティに関する追加情報を参照してください。
ClearQuest CM
API に組み込まれている主要な例外のタイプは次のとおりです。
- StpException (WvcmException を拡張)
- StpPropertyException (StpException を拡張)
- StpPartialResultsException (PropertyException を拡張)
StpException
StpException は、
WvcmException の拡張で、ClearQuest CM API がスローするすべてのチェック例外の基本クラスです。WVCM で定義されたメソッドのすべての実装は、
WvcmException をスローします。
WVCM の拡張である、ClearQuest CM
API のすべての public メソッドも
WvcmException をスローします。ただし、これらのすべてのメソッドの実装は、
WvcmException ではなく、一貫して
StpException のみをスローします。以下の規則が適用されます。
- StpException のスローは、メソッド宣言で使用されることは
ありません (public でも、そうでない場合も)。メソッドが StpException をスロー
する場合でも、そのメソッドは WvcmExceptions をスローするかのように宣言されます。
- メソッドは、新規 WvcmExceptions をスローすることは決してありません。例外は、WvcmExceptions として表されている場合でも、常に新規 StpException としてスローされます。
StpPropertyException
StpPropertyException は、StpException を拡張したもので、リソース プロパティの読み取りまたは書き込みに関連するエラーの基本例外クラスです。
プロパティ値がサーバーから要求された後、その名前が結果と関連付けられ、プロキシに保管
されます。その名前は、値の取得が成功した場合は取得した値と関連付けられ、
取得が成功しなかった場合は状況情報と (StpPropertyException オブジェクトの
形式で) 関連付けられます。
StpPartialResultsException
StpPartialResultsException は、StpPropertyException を拡張したもので、複数のリソースに関係する操作または
プロパティでの障害を報告するために使用されます。これは、操作またはプロパティによって通常
戻される ResourceList の代わりになります。これには、ResourceList (正常に処理されたリソースのプロキシを保持する) と、
StpException のリスト (このリスト中のそれぞれが、操作が失敗した 1 つのリソースに
対応している) が含まれています。詳しくは、Javadoc の情報を参照してください。