Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


Share this Page URL
Help

14 Debugging und Fehlerbehandlung > 14.4Fehlerdokumentation und -übermittlung - Pg. 789

Fehlerdokumentation und -übermittlung Dim sError As String Dim nErr As Long Dim lLen As Long Const SW_SHOWMAXIMIZED As Long = 300 If ret = 0 Then nErr = Err.LastDllError sError = String(255, 0) lLen = FormatMessage(&H1000, 0&, nErr, 0&, sError, 255, 0&) Err.Raise vbObjectError, "TestAPIError", _ "API-Fehler Nr. " & nErr & ":" & vbCrLf & Chr(34) _ & Left(sError,lLen - 2) & Chr(34) End If End Sub 'korrekt: 3 ret = ShowWindow(Application.hWndAccessApp, SW_SHOWMAXIMIZED) Listing 14.6: Fehlerbehandlung für Fehler beim Aufruf von API-Funktionen Dass die Funktion mit diesem Parameter fehlschlägt, erkennt man laut Windows- SDK am Rückgabewert 0. Im Folgenden wird deshalb Err.LastDllError bemüht, um die Windows-Fehlernummer zu erhalten ­ in diesem Fall 87. Nun wissen Sie allerdings noch nicht, was diese Zahl bedeutet. Mit der API-Funktion FormatMessage lässt sich jedoch der Fehlertext ermitteln, in der Stringvariablen sError speichern und mit Err.Raise an die benutzerdefinierte Fehlerauslösung leiten ­ Ergebnis: »Falscher Parameter«. Wenn eine API-Funktion zum Absturz von Access führt, dann nutzt diese Technik allerdings wenig. Solche Fehler kann nur der Windows-Debugger selbst abfangen und mit einer Beendigung des auslösenden Prozesses quittieren. 14.4 Fehlerdokumentation und -übermittlung Ziel der Fehlerbehandlung in Anwendungen, die man an andere Benutzer weitergibt, muss sein, diesen eine möglichst robuste Anwendung zu bieten, die sich nach Auftreten eines Fehlers nicht wortlos verabschiedet, sondern dem Benutzer die Möglichkeit bietet, dem Entwickler Informationen über aufgetretene Fehler zukommen zu lassen. Für die Robustheit ist freilich nicht nur die Fehlerbehandlung, sondern die komplette Anwendung verantwortlich. Indirekt führt aber auch eine sinnvolle Fehlerbehandlung wieder zu mehr Robustheit, wenn diese eine Übermittlung der Informationen zu aufge- tretenen Fehlern und damit deren Behebung ermöglicht. Die Übermittlung von Fehlermeldungen per Telefon und E-Mail führt normalerweise zu folgendem Satz aus dem Munde des Entwicklers: »Also nun versuchen Sie noch einmal, den Fehler zu reproduzieren. Und wenn dann die Fehlermeldung erscheint, machen Sie 789