Obiekt Err [VBA]

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:

warning

Ta stała, funkcja lub obiekt włączane są przez instrukcję Option VBASupport 1 umieszczoną w module przed programem wykonywalnym.


Obiekt VBA Err ma następujące właściwości i metody:

Właściwości


         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.

Metody


         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.

Parametry

Number: Zdefiniowany przez użytkownika lub wstępnie zdefiniowany kod błędu, który ma zostać zgłoszony.

note

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.

Przykład:


         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
      

Exception ClassModule

tip

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
      

Przykład


         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
      
note

Instrukcja Error lub moduł klasy podobny do Exception mogą być używane zamiennie, podczas gdy ten drugi dodaje dodatkowe funkcje.


Prosimy o wsparcie!