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 Collabora Office.

Err.Number As Long

Kod błędu skojarzony z błędem. Domyślna właściwość obiektu Err to Number. Alias Collabora Office 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 Collabora Office 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 Collabora Office 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 Collabora Office Basic. Błędy zdefiniowane przez użytkownika mogą zaczynać się od wyższych wartości, aby zapobiec kolizji z przyszłymi zmianami Collabora Office 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 Collabora Office 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!