Err-objekt [VBA]

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

Err er et indbygget VBA-objekt som tillader:

warning

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.

note

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

tip

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
      
note

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


Støt os venligst!