Как я могу использовать RpcRaiseException () для хорошей обработки ошибок? - PullRequest
0 голосов
/ 26 ноября 2009

Во время выполнения MS RPC есть функция RpcRaiseException() для указания ошибок, возникающих во время вызова RPC на стороне сервера или в обратном вызове канала на стороне клиента. RPC_STATUS, переданный в RpcRaiseError(), распространяется на сайт вызова RPC.

Проблема в том, как выбрать значение RPC_STATUS?

Скажем в трубе pull() обратный вызов Я читаю данные из IStream* и передаю эти данные в трубу. Теперь IStream::Read() возвращает HRESULT, указывающий на ошибку, и мне нужно вызвать RpcRaiseException(), чтобы прервать вызов.

Какое значение я передаю?

1 Ответ

0 голосов
/ 26 ноября 2009

Если у вас есть API, который может дать сбой, почему бы не сделать так, чтобы API возвращал код ошибки в качестве возвращаемого значения для API?

Если вы действительно хотите использовать RpcRaiseException, исключение будет распространяться как исключение на стороне клиента, поэтому код исключения будет отображаться как код RpcExceptionCode в обработчике RpcExcept на стороне клиента.

...