VBA-Objekt Err

Verwenden Sie das VBA-Objekt Err, um Laufzeitfehler auszulösen oder zu behandeln.

Err ist ein integriertes globales VBA-Objekt, das Folgendes ermöglicht:

warning

Diese Konstante, diese Funktion oder dieses Objekt wird durch Platzierung der Anweisung Option VBASupport 1 vor dem auszuführenden Programmcode des Moduls aktiviert.


Das VBA-Objekt Err hat die folgenden Eigenschaften und Methoden:

Eigenschaften


         Err.Description As String
      

Die Eigenschaft Description gibt die Art des Fehlers an. Description beschreibt die verschiedenen Gründe, welche die Ursache des Fehlers sein können. Im Idealfall bietet es mehrere Vorgehensweisen, um das Problem zu lösen und ein erneutes Auftreten zu verhindern. Der Basic-Alias ist die Funktion Error für vordefinierte Fehler in LibreOffice.


         Err.Number As Long
      

Der dem Fehler zugeordnete Fehlercode. Die Objekt-Standardeigenschaft Err ist Number. Der Alias von LibreOffice Basic ist die Funktion Err.


         Err.Source As String
      

Source gibt den Namen der Routine an, die den Fehler erzeugt. Source ist eine Option für benutzerdefinierte Fehler.

Methoden


         Err.Clear()
      

Setzt Descrition, Erl, Number und Quelleigenschaften des aktuellen Fehlers zurück. Der Alias von LibreOffice Basic ist die Anweisung Resume.


         Err.Raise(Number As Long, Optional source As String, Optional description As String)
      

Wirft benutzerdefinierte Fehler oder vordefinierte Fehler aus. Der Alias von LibreOffice Basic ist die Anweisung Error.

Parameter

Number: Ein benutzerdefinierter oder vordefinierter Fehlercode, der ausgelöst werden soll.

note

Der Fehlercodebereich 0-2000 ist für LibreOffice Basic reserviert. Benutzerdefinierte Fehler sollten bei höheren Werten beginnen, um Kollisionen mit zukünftigen Entwicklungen von LibreOffice Basic zu vermeiden.


Source: Der Name der Routine, die den Fehler auslöst. Es wird ein Name in der Form "meineBibliothek.meinModul.meinProgramm" empfohlen.

Description: Eine Beschreibung des Problems, das zum Stoppen des laufenden Prozesses führt, zusammen mit den verschiedenen Gründen, die dazu führen können. Eine detaillierte Auflistung der möglichen Vorgehensweisen, die zur Lösung des Problems beitragen können, wird empfohlen.

Beispiel:


         Option VBASupport 1
          
         Sub ThrowErrors
             Dim aDesc As String : aDesc = Space(80)
             On Local Error GoTo AlertAndExecNext
             Err.Raise(91, "ThrowErrors", Error(91))
             Err.Raise 2020, Description:="Dies ist ein beabsichtigter benutzerdefinierter Fehler …"
             Err.Raise(4096, "Standard.Module1.ThrowErrors", aDesc)
             Exit Sub
         AlertAndExecNext:
             errTitle = "Error "& Err &" at line "& Erl &" in "& Err.Source
             MsgBox Err.Description, MB_ICONEXCLAMATION, errTitle
             Resume Next
         End Sub
      

Exception ClassModule

tip

Ein kurzes ClassModule, welches das VBA-Objekt Err umschließt, kann Eigenschaften und Methoden in Err für Standardmodule in LibreOffice Basic verteilen.



         Option ClassModule
         Option VBASupport 1
          
         Public Property Get Description As String
             Description = Err.Description
         End Property
         Public Property Get Number As Long
             Number = Err.Number
         End Property
         Public Property Get Source As String
             Source = Err.Source
         End Property
         Public Sub Clear
             Err.Clear
         End Sub
         Public Sub Raise( number As Long, Optional Source As String, Optional Description As String)
             Err.Raise number, Source, Description
         End Sub
      

Beispiel


         Function Exc As Object
             Exc = New Exception
         End Function
          
         Sub aRoutine
         try:
             On Local Error GoTo catch:
             Exc.Raise(4096, "myLib.myModule.aRoutine", _
                 "Beliebige mehrzeilige Beschreibung für diese benutzerdefinierte Ausnahme")
             ' Ihr Code gehört hier hin …
         finally:
             Exit Sub
         catch:
             errTitel = "Error "& Exc.Number &" at line "& Erl &" in "& Exc.Source
             MsgBox Exc.Description, MB_ICONSTOP, errTitle
             Resume finally
         End Sub
      
note

Die Anweisung Error oder ein Exception-ähnliches Klassenmodul können austauschbar verwendet werden, während letzteres zusätzliche Funktionen hinzufügt.


Bitte unterstützen Sie uns!