Feil Objekt [VBA]

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

Err er et innebygd VBA globalt objekt som tillater:

warning

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.

note

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

tip

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
      
note

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


Supporter oss!