Fehlerbehandlung
Die UModel API gibt Fehler auf zwei unterschiedliche Arten zurück. Jede API-Methode gibt ein HRESULT zurück. Dieser Rückgabewert informiert den Aufrufer über etwaige Fehler, die während der Ausführung der Methode aufgetreten sind. Wenn der Aufruf erfolgreich war, ist der Rückgabewert gleich S_OK. C/C++-Programmierer verwenden im Allgemeinen HRESULT, um Fehler ausfindig zu machen.
In VisualBasic, Scripting-Sprachen und anderen komplexen Entwicklungsumgebungen hat der Programmierer keinen Zugriff auf das zurückgegebene HRESULT eines COM-Aufrufs. Es wird der zweite Fehlermeldungsmechanismus der UModel API verwendet, die IErrorInfo Schnittstelle. Bei Auftreten eines Fehlers erstellt die API ein neues Objekt, das die IErrorInfo Schnittstelle implementiert. Die Entwicklungsumgebung nimmt diese Schnittstelle und setzt die bereitgestellten Informationen in ihre eigenen Fehlerbehandlungsmechanismen ein.
Im folgenden Beispielcodefragment sehen Sie, wie mit Fehlern verfahren wird, die von der UModel API in unterschiedlichen Umgebungen ausgelöst werden.
VisualBasic
Eine gängige Methode zur Fehlerbehandlung in VisualBasic ist die Definition eines Error Handler. Dieser Error Handler kann mit der On Error Anweisung definiert werden. Normalerweise zeigt der Handler eine Fehlermeldung an und führt Cleanup-Funktionen durch, um überzählige Referenzen und jede Art unnötiger Ressoucenbeanspruchung zu vermeiden.
VisualBasic füllt sein eigenes Err Objekt mit den Informationen aus der IErrorInfo Schnittstelle.
Sub Validate() |
JavaScript
Die Microsoft Implementierung von JavaScript (JScript) bietet einen try-catch-Mechanismus zur Behandlung von Fehlern, die durch COM-Aufrufe ausgelöst werden. Die Methode ist der VisualBasic-Methode insofern sehr ähnlich, als auch hier ein Fehlerobjekt deklariert wird, das die nötigen Informationen enthält.
function Generate() |
C/C++
In C/C++ haben Sie einfachen Zugriff auf das HRESULT des COM-Aufrufs und die IErrorInterface.
HRESULT hr; |