Object Err [VBA]

Gebruik het object Err [VBA] om fouten te laten optreden en om fouten tijdens uitvoering af te handelen.

Met het interne globale object Err kunt u:

warning

Deze constante, functie of object, is ingeschakeld met de instructie Option VBASupport, geplaatst voor het uitvoerbare programmacode in een module.


Het VBA object Err heeft de volgende eigenschappen en methodes:

Eigenschappen

Err.Description As String

De eigenschap Description geeft de aard van de fout aan. Description beschrijft wat de oorzaken kunnen zijn van het optreden van de fout. Ideaal zou het zijn als er ook acties genoemd worden om het probleem te verhelpen en het opnieuw optreden te voorkomen. De Basic alias hiervoor de functie Error voor voorgedefinieerde fouten in Collabora Office.

Err.Number As Long

De foutcode die bij de fout hoort. De eigenschap in het object Err is hier standaard Number. De Collabora Office Basic alias is de functie Err.

Err.Source As String

Source geeft de naam aan van de routine waarin de fout is opgetreden. Source is een optie bij door gebruikers gedefinieerde fouten.

Methoden

Err.Clear()

Reset de description, Erl, number en source eigenschappen van de huidige fout. De Collabora Office Basic alias is de instructie Resume.

Err.Raise(Number As Long, Optional source As String, Optional description As String)

Zorgt dat er een gebruikergedefinieerde fout of een vooraf gedefinieerde fout optreedt. Dit is gelijkwaardig aan de Collabora Office Basic instructie Error.

Parameters

Number: De gebruikergedefinieerde of vooraf gedefinieerde fout die moet optreden.

note

De foutcodes 0-2000 zijn gereserveerd voor Collabora Office Basic. Als er door gebruikers fouten worden gedefinieerd dan moeten die een hogere foutcode krijgen dan 2000 om in de toekomst problemen met nieuwe uitbreidingen van Collabora Office Basic te voorkomen.


Source: De naam van de routine waarin de fout is opgetreden dan wel aangemaakt. Aanbevolen wordt een naam als "myLibrary.myModule.myProc".

Description: Een beschrijving van de reden waarom de verwerking is gestopt, met de mogelijke oorzaken. We bevelen aan dat er ook een toelichting is met de acties die gedaan kunnen worden om de fout te voorkomen of om die op te lossen.

Voorbeeld:

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:="Dit is een fout die door een gebruiker van te voren is gedefinieerd …"
    Err.Raise(4096, "Standard.Module1.ThrowErrors", aDesc)
    Exit Sub
AlertAndExecNext:
    errTitle = "Fout "& Err &" op regel "& Erl &" in "& Err.Source
    MsgBox Err.Description, MB_ICONEXCLAMATION, errTitle
    Resume Next
End Sub

Exception ClassModule

tip

Met de optie ClassModule, dat het VBA object Err omvat, kunnen de eigenschappen en methoden van Err gebruikt worden door de standaard Collabora Office Basic modules.


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

Voorbeeld

Function Exc As Object
    Exc = New Exception
End Function

Sub aRoutine
try:
    On Local Error GoTo catch:
    Exc.Raise(4096, "myLib.myModule.aRoutine", _
        "Een beschrijving van mogelijk meerdere regels van deze door de gebruiker gedefinieerde exception")
    ' hier komt uw code…
finally:
    Exit Sub
catch:
    errTitle = "Fout "& Exc.Number &" op regel "& Erl &" in "& Exc.Source
    MsgBox Exc.Description, MB_ICONSTOP, errTitle
    Resume finally
End Sub
note

De instructie Error of een klassemodule als Exception kunnen door elkaar gebruikt worden, met de klassemodule heeft u wat meer mogelijkheden.


Help ons, alstublieft!