如何使用RpcRaiseException()进行良好的错误处理?

时间:2009-11-26 14:41:01

标签: windows visual-c++ error-handling rpc

MS RPC运行时中有RpcRaiseException()函数,用于指示在服务器端或客户端管道回调中的RPC调用期间发生的错误。传递到RpcRaiseError()的RPC_STATUS将传播到RPC调用的站点。

问题是如何选择RPC_STATUS值?

在管道pull()回调中说我从IStream*读取数据并将该数据提供给管道。现在IStream::Read()返回HRESULT表示错误,我需要拨打RpcRaiseException()来中断通话。

我通过什么价值?

1 个答案:

答案 0 :(得分:0)

如果您的API可能会失败,为什么不让API返回失败代码作为API的返回值?

如果你想使用RpcRaiseException,异常将被传播为客户端的异常,因此异常代码将显示为客户端RpcExcept处理程序中的RpcExceptionCode。