Hilfe für LibreOffice 24.8
Verwenden Sie das VBA-Objekt Err, um Laufzeitfehler auszulösen oder zu behandeln.
Err ist ein integriertes globales VBA-Objekt, das Folgendes ermöglicht:
um vordefinierte Grundfehler auszulösen
um benutzerdefinierte Ausnahmen auszulösen
die Routine, die den Fehler verursacht, zu benennen
um den Fehler und mögliche Lösungen zu beschreiben
Das VBA-Objekt Err hat die folgenden Eigenschaften und Methoden:
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.
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.
Number: Ein benutzerdefinierter oder vordefinierter Fehlercode, der ausgelöst werden soll.
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.
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
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
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
Die Anweisung Error oder ein Exception-ähnliches Klassenmodul können austauschbar verwendet werden, während letzteres zusätzliche Funktionen hinzufügt.