Fehlerweitergabe an aufrufende Prozeduren
Veröffentlicht am 30.12.2003
Laufzeitfehler an aufrufende Prozeduren weitergeben.
Zu einem guten Programmierstil gehört es, alle möglicherweise auftretenden Laufzeitfehler durch Fehlerbehandlungsroutinen abzufangen. Nicht immer ist es allerdings sinnvoll, auftretende Laufzeitfehler innerhalb der Prozedur zu verarbeiten, in der sie auftreten.
Mit Hilfe der Raise-Methode des Err-Objekts können Sie Laufzeitfehler an aufrufende Prozeduren weitergeben oder sogar neue Fehler definieren.
Die Raise-Methode besitzt insgesamt 5 Argumente, über die der auszulösende Laufzeitfehler definiert wird. Besonders wichtig sind die beiden Argumente Number und Description.
Über Number weisen Sie Ihrem ausgelösten Laufzeitfehler eine Fehlernummer zu. Damit es hier zu keinen Konflikt mit den Standardfehlernummern von Access kommt, sollten Ihre selbstdefinierten Fehlernummer auf der Konstanten vbObjectError basieren. Addieren Sie zu dieser Konstanten einfach eine Zahl zwischen 1 und 2147221504.
Mit Hilfe des zweiten Arguments können Sie den Laufzeitfehler mit einer Beschreibung versehen, die Sie genau wie bei normalen Laufzeitfehlern anschließend über die Description-Eigenschaft des Err-Objekts abrufen können.
Die folgende Beispielprozedur überprüft, ob das Archivbit einer bestimmten Datei Ihrer Festplatte gesetzt ist. Sollte keine Datei mit dem angegebenen Namen vorhanden sein, wird mittels Err.Raise ein Laufzeitfehler ausgelöst. Dieser kann anschließend von der aufrufenden Prozedur auf die gewohnte Art und Weise mit Hilfe der On Error-Anweisung abgefangen und ausgewertet werden.
Function IstArchivbitGesetzt(Dateiname As String) As Boolean
'Existiert die Datei?
If Dir(Dateiname) = "" Then
Err.Raise Number:=vbObjectError + 1, Description:="Der angegebene Name ist ungültig!"
Exit Function
Else
IstArchivbitGesetzt=((GetAttr(Dateiname) And vbArchive) <> 0)
End If
End Function