Err VBA Object

Indhold
Indholdsfortegnelse 🔎︎

# objektet Err [VBA]

Brug VBA-objektet Err til rejse eller håndtere afviklingsfejl.

Err er et indbygget VBA-globalt objekt, som tillader:

- til at sætte flag ved prædefinerede fejl

- at smide brugerdefinerede undtagelser

- finde navnet på den rutine, der forårsager fejlen

- at beskrive fejlen og mulige løsninger

Denne konstant, funktion eller objekt blev aktiveret med udtrykket Option VBASupport 1 placeret foran den del af modulets programkode, der kan udføres.

VBA-objektet Err har følgende egenskaber og metoder:

## Egenskaber

             Err.Description As String

Egenskaben Description angiver fejlens natur. Description opregner de forskellige grunde, der kan udløse fejlen. Ideelt giver den flere fremgangsmåder som hjælp til løse problemmet og forebygge dets genopståen. Basic alias er funktionen Error for LibreOffice forfuddefinerede fejl.

             Err.Number As Long

Fejlkoden er knyttet til fejlen. Objektet Errs standardegenskab er Number. LibreOffice Basics alias er funktionen Err.

             Err.Source As String

Source viser navnet på den rutine, der giver fejlen Source er valgfri for bruger-definerede fejl.

## Metoder

             Err.Clear()

Nulstiller den aktuelle fejls beskrivelse, Erl, nummer og kildeegenskaber. LibreOffice Basics alias er erklæringen Resume.

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

Kaster brugerdefinerede eller foruddefinerede fejl. LibreOffice Basics alias er erklæringen Error.

### Parametre

Number: En brugerdefineret eller foruddefineret fejlkode, der sættes.

Fejlkode-området 0-2000 er reserveret til LibreOffice Basic. Brugerdefinerede fejl kan begynde med højere værdier, for at forebygge sammenstød med kommende LibreOffice Basic udvikling.

Source: Navnet på den rutine, der udløser fejlen. Der anbefales et navn på formen "myLibrary.myModule.myProc".

Description: En beskrivelse af problemet, der ledte til stop af den kørende proces, ledsaget af de forskellige udløsende grunde til det. En detaljeret liste over de mulige fremgangsmåder, der kan lette løsningen af problemet anbefales.

### Eksempel:

             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:="Dette er en tilsigtet brugerdefineret fejl…"
                 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

## Undtagelsen ClassModule

Et kort ClassModule, er foldet omkring VBA Err-objektet, kan distribuere Err egenskaber og metoder til standard LibreOffice Basic-moduler.

             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

## Eksempel

             Function Exc As Object
                 Exc = New Exception
             End Function

             Sub aRoutine
             try:
                 On Local Error GoTo catch:
                 Exc.Raise(4096, "myLib.myModule.aRoutine", _
                     "Enhver flerlinjet beskrivelse af denne brugerdefinerede undtagelse")
                 ' din kode skrives her …
             finally:
                 Exit Sub
             catch:
                 errTitle = "Error "& Exc.Number &" at line "& Erl &" in "& Exc.Source
                 MsgBox Exc.Description, MB_ICONSTOP, errTitle
                 Resume finally
             End Sub

Udtrykket Error eller et undtagelseslignende klassemodul kan bruges i flæng, mens det sidste tilføjer ekstra funktionaliteter.

Relaterede emner

Fejlhåndterings-funktioner

Option ClassModule-udtryk

Option VBASupport-udtryk

Tjenesten ScriptForge.Exception (Undtagelse)