Err Object [VBA]
Bruk VBA-objektet Err for Ă„ heve eller handsama kĂžyretidsfeil.
Err er eit innebygd VBA-objekt som tillet:
for Ă„ lĂžfte fĂžrehandsdefinerte feil i Basic
for Ă„ fjerna brukardefinerte unnatak
Ä setja namn pÄ rutinen som var Ärsaka til feilen
Ă„ skildra feilen og mogleg lĂžysing
VBA Err-objektet har desse eigenskane og metodane:
Eigenskapar
Err.Description As String
Eigenskapen Description viser fejlens natur. Det vert gjeve ei detaljert forklaring pÄ kva som kan vera Ärsaka til feilen. Ideelt sett gjev han fleire forslag til korleis feilen kan rettast og hindra at han oppstÄr igjen. Aliaset er Basicfunksjonen Error for LibreOffice fÞrehandsdefinerte feil.
Err.Number As Long
Dette er feilkoden knytt til feilen. Standardeigenskapane for objektet Err er Number. Aliaset er % PRODUCTNAME Basic-funksjonen Err.
Err.Source As String
Source viser namnet pÄ rutinen som var Ärsak til feilen. Source er ei innstilling for brukardefinerte feil.
Metodar
Err.Clear()
Nullstiller skildringa Erl, nummer og kjeldeeigenskapane for den gjeldande feilen. Aliaset er uttrykket LibreOffice Basic Resume.
Err.Raise(Number As Long, Optional source As String, Optional description As String)
Kastar brukardefinerte feil eller fĂžrehandsdefinerte feil. Aliaset er LibreOffice Basic Error-udtryk
Parametrar
Tal ein brukardefinert eller fĂžrhandsdefinert feilkode som skal visast.
Feilkodane 0-2000 er reserverte for LibreOffice Basic. Brukardefinerte feil mÄ byrja frÄ hÞgare verdiar for Ä unngÄ kollisjon med framtidige utgÄver av LibreOffice Basic.
Source Namnet pÄ rutinen som noterte feilen. Det vert rÄdd til Ä bruka eit namn med forma «mittBibliotek.minModul.minProsedyre».
Description Ei skildring av problemet som fÞrte til at prosessen stoppa, med dei ulike Ärsakene som kan vera grunnen til det. Det vert tilrÄdd Ä bruka ei detaljert liste over forslag som kan hjelpa til Ä lÞyse problemet.
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 ein medviten brukardefinert feil âŠ"
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
Unntak ClassModule
Ein kort ClassModule som omsluttar VBA Err-objekt kan fordela Err-eigenskapar og metodar for standard LibreOffice Basic-modular.
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", _
"Kva fleirlinja skildring som helst av dette brukardefinerte unntaket")
' her kjem koden din
finally:
Exit Sub
catch:
errTitle = "Error "& Exc.Number &" at line "& Erl &" in "& Exc.Source
MsgBox Exc.Description, MB_ICONSTOP, errTitle
Resume finally
End Sub
Uttrykket Error eller ein unntaksliknande klassemodul kan brukast om kvarandre, men den sistnemnde legg til ekstra funksjonar.