Behandeln von Fehlern in Visual C++
In COM wird bei den meisten Operationen ein HRESULT-Rückgabecode zurückgegeben, der angibt, ob eine Funktion erfolgreich abgeschlossen wurde. Die Anweisung „#import“ erzeugt Wrapper-Code um jede „rohe“ Methode oder Eigenschaft und überprüft den zurückgegebenen HRESULT. Wenn der HRESULT einen Fehler anzeigt, löst der Wrapper-Code einen COM-Fehler aus, indem er _com_issue_errorex() mit dem HRESULT-Rückgabecode als Argument aufruft. COM-Fehlerobjekte können in einem try-catch-Block abgefangen werden. (Der Effizienz wegen fangen Sie einen Verweis auf ein „_com_error“-Objekt auf.)
Bedenken Sie, dass es sich hierbei um ADO-Fehler handelt: Sie entstehen, wenn die ADO-Operation fehlschlägt. Fehler, die vom zugrunde liegenden Anbieter zurückgegeben werden, werden als Error-Objekte in der Errors-Auflistung des Connection-Objekts aufgeführt.
Die Anweisung „#import“ erstellt nur Fehlerbehandlungsroutinen für Methoden und Eigenschaften, die in der ADO DLL-Datei deklariert sind. Sie können jedoch denselben Fehlerbehandlungsmechanismus nutzen, indem Sie Ihr eigenes Makro oder Ihre eigene Inline-Funktion zur Fehlerprüfung schreiben. Beispiele finden Sie im Artikel „Visual C++-Erweiterungen“.