Innhold
Innholdsliste 🔎︎

# Feil Objekt [VBA]

Bruk VBA Feil-objektet for å registrere eller håndtere kjøretidsfeil.

Err er et innebygd VBA globalt objekt som tillater:

- å registrere forhåndsdefinerte Basic feil

- å vise brukerdefinerte unntak

- for å navngi rutinen som forårsaket feilen

- for å beskrive feilen og mulige løsninger

Denne konstanten, funksjonen eller objektet er aktivert med utsagnet Option VBASupport 1 plassert før den kjørbare programkoden i en modul.

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

## Egenskaper

             Err.Description As String

Egenskapen Beskrivelse gir typen av feil. Beskrivelse beskriver de ulike årsakene som kan være årsaken til feilen. Ideelt sett gir det flere handlinger for å bidra til å løse problemet og forhindre at det gjentar seg. Basic-aliaset er Feil-funksjonen for LibreOffice forhåndsdefinerte feil.

             Err.Number As Long

Feilkoden knyttet til feilen. Err objektets standardegenskap er Number. LibreOffice Basic-aliaset er Err-funksjonen.

             Err.Source As String

Kilde angir navnet på rutinen som produserer feilen. Kilde er et alternativ for brukerdefinerte feil.

## Metoder

             Err.Clear()

Tilbakestiller beskrivelse, Erl, antall og kildeegenskaper for gjeldende feil. LibreOffice Basic-aliaset er Fortsett-uttrykket.

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

Viser brukerdefinerte feil eller forhåndsdefinerte feil. LibreOffice Basic-aliaset er Feil-uttrykket.

### Parametre

Nummer: En brukerdefinert eller forhåndsdefinert feilkode som skal hentes.

Feilkodeområde 0-2000 er reservert for LibreOffice Basic. Brukerdefinerte feil kan starte fra høyere verdier for å forhindre kollisjon med LibreOffice Basic fremtidig utvikling.

Kilde: Navnet på rutinen som gir feilen. Et navn i form av "myLibrary.myModule.myProc" anbefales.

Beskrivelse: En beskrivelse av problemet som førte til å stoppe den kjørende prosessen, sammen med de ulike årsakene som kan forårsake det. Det anbefales en detaljert liste over mulige handlingsforløp som kan bidra til å løse problemet.

### 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, Beskrivelse:="Dette er en tiltenkt brukerdefinert feil ..."
                 Err.Raise(4096, "Standard.Module1.ThrowErrors", aDesc)
                 Exit Sub
             AlertAndExecNext:
                 errTitle = "Feil "& Err &" på raden "& Erl &" i "& Err.Source
                 MsgBox Err.Description, MB_ICONEXCLAMATION, errTitle
                 Resume Next
             End Sub

## Exception ClassModule

En kort ClassModule, som omslutter VBA Err objekt, kan distribuere Feil egenskaper og metoder for 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 flerlinjebeskrivelse for dette brukerdefinerte unntaket")
                 ' din kode finner sted her …
             finally:
                 Exit Sub
             catch:
                 errTitle = "Feil "& Exc.Number &" på linjen "& Erl &" i "& Exc.Source
                 MsgBox Exc.Description, MB_ICONSTOP, errTitle
                 Resume finally
             End Sub

Feil-setningen eller en unntakslignende klassemodul kan brukes om hverandre, mens sistnevnte legger til ekstra funksjoner.

Lignende emner

Feilhåndterings- funksjoner

Alternativt ClassModule Uttrykk

Alternativ VBA støtte-uttrykk

ScriptForge.Unntak-tjeneste