报告来自管道组件的错误

管道组件用两种方式报告错误:

  • 对于基于 .NET 的组件,通过引发异常。

  • 对于基于 COM 的组件,通过设置 ErrorInfo 对象并返回失败的 HRESULT。

报告来自 .NET 管道组件的错误

若要报告某一错误,基于 .NET 的管道组件需要引发一个异常,以便报告错误说明。 若要报告引发错误的组件的名称,请设置 Exception 对象的 Source 属性。

消息引擎使用 Exception 对象的 MessageSource 属性来报告错误。 下面的消息将写入事件日志:

“执行 [receive|send] 管道失败: <管道名称> 源: <源> [接收位置|Send Port:] <location|port name> 原因: <Message>.”

报告来自 COM 管道组件的错误

若要报告某一错误,基于 COM 的管道组件快执行以下操作:

  1. 管道组件通过调用 SetErrorInfo 方法设置 IErrorInfo 对象。

  2. 管道组件将失败的 HRESULT 返回到消息引擎。

    消息引擎使用 IErrorInfo 对象的 GetSourceGetDescription 属性来报告错误。 如果未设置源,则使用该组件的名称。 如果未设置说明或未设置整个 ErrorInfo 对象,则报告返回的 HRESULT 而不是说明。 下面的消息将写入事件日志:

    “执行 [receive|send] 管道失败: <管道名称> Source: <GetSource> [接收位置|Send Port:] <location|port name> 原因: <GetDescription 或 HRESULT>。”

另请参阅

开发自定义管道组件