Err VBA Object

Indhold
Indholdsfortegnelse 🔎︎

# Err-objekt [VBA]

Brug VBA-objektet Err til rejse eller håndtere fejl under udførelse.

Err er et indbygget VBA-objekt som tillader:

- for at notere foruddefinerede fejl i Basic

- at smide brugerdefinerede undtagelser

- at sætte navn 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 Err-objekt har disse egenskaber og metoder:

## Egenskaber

             Err.Description As String

Egenskaben Description angiver fejlens natur. Den forklarer udførligt de forskelle årsager, der kan udløse fejlen, den leverer flere handlingsforslag til at løse problemet og forebygge, at det kommer igen. Dets alias er Basic-Error-funktion til LibreOffice foruddefinerede fejl.

             Err.Number As Long

Denne fejlkode er knyttet til fejlen. Err-objektets standardegenskab er Nummer. Dens alias er LibreOffice Basic Err-funktion.

             Err.Source As String

Source viser navnet på den rutine, der giver fejlen. Source er en indstilling i user-definerede fejl.

## Metoder

             Err.Clear()

Nulstiller beskrivelsen Erl, nummer og den aktuelle fejls kildeegenskaber. Dens alias er udtrykket LibreOffice Basic Resume t.

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

Kaster brugerdefinrede fejl eller foruddefinerede fejl. Dets alias er LibreOffice Basic Error-udtryk

### Parametre

Number En brugerdefineret eller foruddefineret fejlkode, der skal noteres.

Fejlkode-rummet 0-2000 er reserveret til LibreOffice Basic. Brugerdefinerede fejl kan begynde ved højere værdier for at forebygge sammenstød med fremtidige udviklinger af LibreOffice Basic.

Source Navnet på den rutine, der noterede fejlen. Et navn på foremen "myLibrary.myModule.myProc" anbefales.

Description En beskrivelse af problemet der fører til stop af den løbende proces, ledsaget af forskellige grunde til det. En udførlig liste over mulige handlingsforslag, der kan kan hjælpe med at løse 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, som omslutter VBAs Err-objekt, kan fordele 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 funktioner.

Relaterede emner

Fejlhåndterings-funktioner

Option ClassModule-udtryk

Option VBASupport-udtryk