COM+ 管理エラーの処理
COMAdmin オブジェクトの使用時に生成されたエラーは、次の 2 つの方法で報告されます。
- COMAdmin ライブラリに固有のエラー コードを使用する。
- 特殊な ErrorInfo コレクションで使用できる拡張エラー情報を使用する。
エラー コード
COM エラー メッセージと同様、管理エラー コードを処理します。 Microsoft Visual C++ では、これらのコードは HRESULT 値として返されます。 Microsoft Visual Basic では、キャッチできる例外としてスローされます。 C++ プログラマーの場合、COM+ 管理エラー コードは Winerror.h で定義されます。 Visual Basic プログラマーの場合は、Visual Basic IDE を通じて使用できます。
ErrorInfo コレクション
何らかのエラー コードによって通知されるエラーが発生した場合、エラーの性質に応じて、より詳細な情報が利用できる場合があります。 COMAdmin オブジェクトは、複数の読み取り操作や書き込み操作など、詳細なレポートなしでエラーの正確な原因を特定することが困難な状況において、拡張情報を提供します。
たとえば、COMAdminCatalogCollection オブジェクトで Populate や SaveChanges などのメソッドを使用する場合、コレクション内のすべての項目のデータの読み取りまたは書き込みを行うことができます。 複雑なエラーが発生する可能性があり、1 つの数値エラー コードに基づいて診断するのが難しいことがあります。 そのため、COMAdmin ライブラリは、特殊なコレクションを通じて拡張エラー情報を作成します。
拡張エラー情報を使用できる場合、エラーが発生した元のコレクションに関連する ErrorInfo コレクションに配置されます。 エラー レポートを取得するには、元のコレクションに関連する ErrorInfo コレクションを取得し、含まれている項目を調べます。 COMAdminCatalogCollection で GetCollection を使用して ErrorInfo コレクションを取得できます。2 番目のパラメーターは空白のままにし、通常はそこで親項目の Key プロパティを指定します。
エラーが発生した場合、そのコレクションに対して他の操作を実行せずに、失敗したコレクションの ErrorInfo コレクションをすぐに取得して設定する必要があります。 それ以外の場合、ErrorInfo コレクションはリセットされ、エラーの詳細は示されません。
ErrorInfo コレクション内の項目は、エラーの特定の原因を詳しく説明する、特別なエラー報告プロパティ MajorRef および MinorRef を公開します。 詳細については、ErrorInfo を参照してください。
関連トピック