| Exception-Handling in objektorientierten VB(A)-Programmen - Seite 2 |
|
|
|
| Geschrieben von: Christoph Jüngling | ||||||||
| Samstag, den 15. März 2008 um 20:29 Uhr | ||||||||
Seite 2 von 6
Das KonzeptWenn VB(A) einen Laufzeitfehler entdeckt, der durch "On Error Goto Catch" abgefangen wird, füllt das Laufzeitsystem das generische Error-Objekt mit Informationen über den Fehler. Anschließend wird die zugewiesene Ansprungstelle (im obigen Code das Label "Catch") angesprungen und die Programmausführung dort fortgesetzt. Dieses Label muss grundsätzlich in derselben Sub/Function/Property liegen, wo die Fehlerbehandlung eingeleitet wurde. Das Error-Objekt heißt grundsätzlich "Err" und verfügt über folgende für uns hilfreiche Eigenschaften:
Ferner verfügt es über die Methoden
Interessant für das vorliegende Konzept ist u.a. die Eigenschaft "Source". Diese lässt sich, besonders wenn sie nicht automatisch gefüllt wird, zur Übergabe der den Fehler verursachenden Stelle (Funktionsname und/oder weitere Informationen) verwenden.
Hilfsfunktionen und DeklarationenWenn in einer Sub, Function oder einem Property (im Folgenden nur noch "Funktion" genannt) ein Laufzeitfehler auftritt, müssen unter Umständen gewisse Bereinigungsarbeiten durchgeführt werden, bevor die aufrufende Funktion über das Problem informiert wird. So ist es z.B. empfehlenswert, ein Recordset-Objekt oder eine externe Datei ordnungsgemäß zu schließen. Außerhalb der benutzenden Funktion oder Klasse ist dieses Objekt höchstwahrscheinlich nicht bekannt, weshalb es dort auch nicht geschlossen werden kann. Bevor jedoch z.B. On Error Resume Next ausgeführt werden kann, muss der Fehler gesichert werden, damit er später wieder auswertbar ist. Wir benötigen also wenigstens die folgenden Elemente:
|
||||||||
| Zuletzt aktualisiert am Samstag, den 15. März 2008 um 21:40 Uhr |