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 LibreOffice.


         Err.Number As Long
      

De foutcode die bij de fout hoort. De eigenschap in het object Err is hier standaard Number. De LibreOffice 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 LibreOffice 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 LibreOffice Basic instructie Error.

Parameters

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

note

De foutcodes 0-2000 zijn gereserveerd voor LibreOffice 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 LibreOffice 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 LibreOffice 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!