パイプライン コンポーネントは、次の 2 つの方法でエラーを報告します。
.NETベースのコンポーネントの場合、例外をスローします。
COM ベースのコンポーネントの場合は、 ErrorInfo オブジェクトを設定し、エラー HRESULT を返します。
.NET パイプライン コンポーネントからのエラーの報告
エラーを報告するには、NET ベースのパイプライン コンポーネントは、エラーの説明を報告する例外をスローする必要があります。 エラーをスローするコンポーネントの名前を報告するには、Exception オブジェクトの Source プロパティを設定します。
メッセージング エンジンは、Exception オブジェクトの Message プロパティと Source プロパティを使用してエラーを報告します。 次のメッセージがイベント ログに書き込まれます。
"[receive|send] パイプラインの実行中にエラーが発生しました: <パイプライン名> ソース: <Source> [受信場所|Send Port:] <___location|port name> Reason: <Message>。
COM パイプライン コンポーネントからのエラーの報告
エラーを報告するために、COM ベースのパイプライン コンポーネントは次のアクションを実行します。
パイプライン コンポーネントは、SetErrorInfo メソッドを呼び出して IErrorInfo オブジェクトを設定します。
パイプライン コンポーネントは、失敗した HRESULT をメッセージング エンジンに返します。
メッセージング エンジンは、IErrorInfo オブジェクトの GetSource プロパティと GetDescription プロパティを使用してエラーを報告します。 ソースが設定されていない場合は、コンポーネントの名前が使用されます。 説明が設定されていない場合、または ErrorInfo オブジェクト全体が設定されていない場合は、返された HRESULT が説明の代わりに報告されます。 次のメッセージがイベント ログに書き込まれます。
"[receive|send] パイプラインの実行中にエラーが発生しました: <パイプライン名> ソース: <GetSource> [受信場所|Send Port:] <___location|port name> Reason: <GetDescription または HRESULT>。