LibreOffice 24.8 Hjelp
Bruk VBA-objektet Err for å heva eller handsama køyretidsfeil.
Err er eit innebygd VBA-objekt som tillet:
for å visa 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-objektet Err har desse eigenskapane og metodane:
Err.Description As String
Eigenskapen Description skildrar naturen til feilen. Description viser dei ulike moglege årsakene til feilen. Ideelt vert fleire metodar for å løysa feilen gjevne, og også forslag til å hindra at feilen kjem opp igjen. Basic alias er funksjonen Error for førehandsdefinerte feil i LibreOffice.
Err.Number As Long
Feilkoden er knytt til feilen. Standardeigenskapen for objektet Err er Number. LibreOffice Basic alias er funksjonen Err.
Err.Source As String
Source viser namnet på rutinen som var årsak til feilen. Source er ei innstilling for brukardefinerte feil.
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. Alias er uttrykket LibreOffice Basic Error.
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.
Kjelde: Namnet på rutinen som utløyste 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 tilsikta 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
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
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.