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.