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
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.
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.