Pomoc LibreOffice 24.8
Użyj obiektu VBA Err, aby zgłosić lub obsłużyć błędy w czasie wykonywania.
Err to wbudowany globalny obiekt VBA, który umożliwia:
podnoszenie predefiniowanych błędów Basic
zgłaszanie wyjątków zdefiniowanych przez użytkownika
nazywanie procedury, która spowodowała błąd
opisywanie błędu i możliwe rozwiązania
Obiekt VBA Err ma następujące właściwości i metody:
Err.Description As String
Właściwość Description podaje charakter błędu. Description szczegółowo opisuje różne przyczyny, które mogą być przyczyną błędu. Idealnie, zapewnia wiele działań, które pomogą rozwiązać problem i zapobiec jego ponownemu wystąpieniu. Podstawowy alias to funkcja Error dla predefiniowanych błędów LibreOffice.
Err.Number As Long
Kod błędu skojarzony z błędem. Domyślna właściwość obiektu Err to Number. Alias LibreOffice Basic to funkcja Err.
Err.Source As String
Source wskazuje nazwę procedury, która generuje błąd. Source to opcja dla błędów zdefiniowanych przez użytkownika.
Err.Clear()
Resetuje opis, Erl, numer i właściwości źródła bieżącego błędu. Alias LibreOffice Basic to instrukcja Resume.
Err.Raise(Number As Long, Optional source As String, Optional description As String)
Zgłasza błędy zdefiniowane przez użytkownika lub błędy predefiniowane. Alias LibreOffice Basic to instrukcja Error.
Number: Zdefiniowany przez użytkownika lub wstępnie zdefiniowany kod błędu, który ma zostać zgłoszony.
Zakres kodów błędów 0-2000 jest zarezerwowany dla LibreOffice Basic. Błędy zdefiniowane przez użytkownika mogą zaczynać się od wyższych wartości, aby zapobiec kolizji z przyszłymi zmianami LibreOffice Basic.
Source: Nazwa procedury zgłaszającej błąd. Zalecana jest nazwa w postaci "myLibrary.myModule.myProc".
Description: Opis problemu prowadzącego do zatrzymania uruchomionego procesu wraz z różnymi przyczynami, które mogą go powodować. Zalecana jest szczegółowa lista możliwych działań, które mogą pomóc w rozwiązaniu problemu.
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:="Jest to zamierzony błąd zdefiniowany przez użytkownika…"
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
Krótki ClassModule, który otacza obiekt VBA Err, może rozpowszechniać właściwości i metody Err dla standardowych modułów LibreOffice Basic.
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", _
"Dowolny wielowierszowy opis tego wyjątku zdefiniowanego przez użytkownika")
' miejsce na niestandardowy kod…
finally:
Exit Sub
catch:
errTitle = "Error "& Exc.Number &" at line "& Erl &" in "& Exc.Source
MsgBox Exc.Description, MB_ICONSTOP, errTitle
Resume finally
End Sub
Instrukcja Error lub moduł klasy podobny do Exception mogą być używane zamiennie, podczas gdy ten drugi dodaje dodatkowe funkcje.