Tratamento de erro em Visual C++
No COM, a maioria das operações retorna um código de retorno HRESULT que indica se uma função foi concluída com êxito. A diretiva #import gera código wrapper em torno de cada método ou propriedade "bruto" e verifica o HRESULT retornado. Se o HRESULT indicar falha, o código wrapper gerará um erro COM chamando _com_issue_errorex() com o código de retorno HRESULT como um argumento. Objetos de erro COM podem ser capturados em um bloco try-catch. (Para fins de eficiência, capture uma referência a um objeto _com_error.)
Lembre-se de que são erros do ADO: eles resultam da falha na operação do ADO. Os erros retornados pelo provedor subjacente aparecem como objetos Error na coleção Errors do objeto Connection.
A diretiva #import cria apenas rotinas de tratamento de erros para métodos e propriedades declaradas no .dll do ADO. No entanto, você pode aproveitar esse mesmo mecanismo de tratamento de erros escrevendo sua própria macro de verificação de erros ou função embutida. Confira exemplos no tópico Extensões do Visual C++.