Compartilhar via


Exceções de solução de problemas: System.Runtime.InteropServices.COMException

Uma exceção COMException é lançada quando um HRESULT não reconhecido retorna de uma chamada de método COM.

Dicas relacionadas

  • Verifique a propriedade ErrorCode da exceção para determinar o HRESULT retornado pelo objeto COM
    Quando o tempo de execução encontra um HRESULT incomum, ele gera a exceção COMException, que inclui uma propriedade pública de ErrorCode contendo o HRESULT retornado pela chamada. Se uma mensagem de erro estiver disponível ao tempo de execução, essa mensagem será retornada ao chamador. No entanto, se o desenvolvedor do componente COM não incluir uma mensagem de erro, o tempo de execução retornará o HRESULT de oito dígitos no lugar de uma cadeia de caracteres de mensagem. Ter um HRESULT permite que o chamador determine a causa da exceção. Para obter mais informações, consulte Como mapear HRESULTs e exceções.

  • Desative o processo de host.
    O COM é usado para a comunicação entre Visual Studio e o processo de hospedagem. Como ele é usado antes que o código seja executado, uma chamada a CoInitializeSecurity faz com que essa exceção seja lançada.

Comentários

O CLR (Common Language Runtime) transforma HRESULTS conhecido em exceções .NET, permitindo que objetos COM retornem informações de erro significativas para os clientes gerenciados. O HRESULT do mapeamento de exceção também funciona no sentido contrário, retornando HRESULTS específicos para clientes não gerenciados.

Quando parâmetros de associação tardia são passados a métodos de objetos do Microsoft Office, a exceção COMException pode ser lançada quando os objetos são objetos COM. A associação tardia presume que essas chamadas de método envolvem um parâmetro ByRef e que a propriedade passada por você tem um acessador Set. Caso contrário, o .NET Framework gera uma exceção MissingMethodException (HRESULT CORE_E_MISSINGMETHOD). Para contornar esse comportamento, use objetos de associação antecipada ou passe uma variável em vez de uma propriedade do objeto.

Consulte também

Tarefas

Como usar o Assistente de Exceção

Referência

COMException

Conceitos

Manipulando exceções de interoperabilidade COM