Exception-Handling in objektorientierten VB(A)-Programmen - Seite 2 PDF Drucken E-Mail
Geschrieben von: Christoph Jüngling   
Samstag, den 15. März 2008 um 20:29 Uhr
Beitragsseiten
Exception-Handling in objektorientierten VB(A)-Programmen
Konzept
Deklarationen
Grundgerüst
Eigene Fehler
Weitere Hilfsfunktionen
Alle Seiten

 

Das Konzept

Wenn 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:

  • Number
  • Description
  • Source
  • HelpFile
  • HelpContext

Ferner verfügt es über die Methoden

  • Clear
  • Raise

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 Deklarationen

Wenn 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
rs.Close
Set rs = Nothing

ausgeführt werden kann, muss der Fehler gesichert werden, damit er später wieder auswertbar ist.

Wir benötigen also wenigstens die folgenden Elemente:

  • Typdeklaration zur Aufnahme der Err-Objekt-Daten
  • Funktion zum speichern der Err-Objekt-Daten
  • Funktion zum erneuten "raisen" eines gespeicherten Errors

 



Zuletzt aktualisiert am Samstag, den 15. März 2008 um 21:40 Uhr
 
Free Joomla Templates