Solucionando problemas de exceções: System.Runtime.InteropServices.COMException

A COMException exceção é lançada quando um HRESULT não reconhecido é retornado a partir de uma chamada de método COM.

Associated Tips

  • Verifique a propriedade ErrorCode da exceção para determinar o HRESULT retornado pelo objeto COM
    Quando o tempo de execução encontra um HRESULT desconhecido, ele lança um COMException exceção, que inclui um público ErrorCode propriedade que contém o HRESULT retornado pela chamada. If an error message is available to the runtime, the message is returned to the caller. However, if the COM component developer fails to include an error message, the runtime returns the eight-digit HRESULT in place of a message string. Having an HRESULT allows the caller to determine the cause of the exception. For more information, see Como: Map HRESULTs and Exceptions.

  • Desative o processo de hospedagem.
    COM é usado para se comunicar entre Visual Studio e o processo de hospedagem. Porque ele é usado antes da execução do código, uma chamada para CoInitializeSecurity faz essa exceção ser acionada.

Remarks

The common language runtime (CLR) transforms well-known HRESULTS to .NET exceptions, enabling COM objects to return meaningful error information to managed clients. The HRESULT to exception mapping also works in the other direction by returning specific HRESULTS to unmanaged clients.

Quando passar parâmetros de ligação tardia para métodos de objetos Microsoft Office, um COMException exceção pode ser lançada quando os objetos são os objetos COM. O fichário atrasado pressupõe que essas chamadas de método envolvem um ByRef parâmetro e a propriedade que você passar tem um Set acessador. Se a propriedade não, o .NET Framework gera um MissingMethodException a exceção (HRESULT CORE_E_MISSINGMETHOD). To work around this behavior, use early-bound objects or pass a variable instead of a property of the object.

Consulte também

Tarefas

Como: Use o Assistente de exceção

Referência

COMException

Conceitos

Manipulando Exceções de Interoperabilidade COM