在C#中捕获COM异常的最佳实践是什么?

时间:2013-08-13 08:09:35

标签: c# exception com

请问,请告诉我如何以正确的方式处理C#中的COM异常? 例如,我正在使用DirectorySearcher并获取COMException: The server is not operational。我该如何处理这个例外?我可以为COMException编写处理程序,但是如何识别特定的异常类型?我应该检查异常消息还是HRESULT

1 个答案:

答案 0 :(得分:1)

您必须查找HRESULT,此 errorcode of the Exception Instance ,因此才能真正了解正在发生的事情。您可以使用 this this 文章对HRESULT进行解密。

示例:

try
{
    //Your code
}
catch(COMException ex)
{
    int error = ex.ErrorCode;

    //Conditions and error handling
}

基本上HRESULT是一个32位整数,其中两个最重要的位描述它是什么类型的消息(成功,信息,警告,错误)。其他30位用于描述消息的其余部分。