请问如何正确处理C#中的COM异常?例如,我正在使用DirectorySearcher,并遇到了COMException:服务器未运行。我应该如何处理这种异常?我可以编写一个COMException处理程序,但是我如何确定特定的异常类型?我应该检查异常消息还是HRESULT?
你必须寻找 HRESULT,它是异常实例的 错误代码,因此这是了解发生了什么的唯一方式。你可以使用 这篇文章 和 这篇文章 来解密 HRESULT。try { //Your code } catch(COMException ex) { int error = ex.ErrorCode; //Conditions and error handling } 基本上,HRESULT是一个32位整数,其中最高的两个位描述了它是什么样的消息(成功、信息、警告、错误)。其他30位用于描述其余的消息。