Predmet Err [VBA]
Uporabite predmet VBA Err za javljanje oz. ravnanje z napakami pri izvajanju.
Err je vgrajeni globalni predmet VBA, ki omogoča:
javljanje vnaprej določene napake Basic;
javljanje uporabniško določenih izjem;
poimenovanje podprograma, kjer je prišlo do napake;
opis napake in možnih rešitev.
Predmet VBA Err ima naslednje lastnosti in metode:
Lastnosti
Err.Description As String
Lastnost Description podaja naravo napake. Podrobno oriše različne razloge, ki bi lahko povzročili napako. Idealno ponuja več možnih ukrepov, ki lahko pomagajo razrešiti težavo in preprečiti njeno ponovno pojavljanje. Njen ekvivalent v Basicu je funkcija Error za vnaprej določene napake LibreOffice.
Err.Number As Long
To je koda napake, povezana z napako. Privzeta lastnost predmeta Err je Number. Njen ekvivalent v LibreOffice Basic je funkcija Err.
Err.Source As String
Source nakazuje ime rutine, ki povzroča napako. Source je možnost za uporabniško določene napake.
Metode
Err.Clear()
Ponastavi lastnosti opis, Erl, številka in vir za trenutno napako. Njen ekvivalent v LibreOffice Basic je ukaz Resume.
Err.Raise(Number As Long, Optional source As String, Optional description As String)
Javi uporabniško določene napake ali vnaprej določene napake. Njen ekvivalent je ukaz LibreOffice Basic Error.
Parametri
Število je uporabniško določena ali vnaprej določena koda napake, ki bo javljena.
Obseg kod napake 0-2000 je rezerviran za LibreOffice Basic. Uporabniško določene napake se lahko začnejo z višjimi vrednostmi, da se preprečijo spori z bodočim razvojem LibreOffice Basic.
Vir je ime rutine, ki javlja napako. Priporočeno je ime v obliki »mojaKnjižnica.mojModul.mojaProc«.
Opis: opis problema, ki pripelje do ustavitve tekočega procesa, ki ga spremljajo različni razlogi, ki bi lahko to povzročili. Priporočen je podroben seznam možnih dejanj, ki lahko pomagajo odpraviti težavo.
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:="To je načrtovana, uporabniško določena napaka ..."
Err.Raise(4096, "Standard.Module1.ThrowErrors", aDesc)
Exit Sub
AlertAndExecNext:
errTitle = "Napaka "& Err &" v vrstici "& Erl &" v "& Err.Source
MsgBox Err.Description, MB_ICONEXCLAMATION, errTitle
Resume Next
End Sub
Izjema ClassModule
Kratek razredni modul, ki zaobjame predmet VBA Err, lahko razširja lastnosti in metode Err za standardne module LibreOffice Basic.
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
Primer
Function Exc As Object
Exc = New Exception
End Function
Sub aRoutine
try:
On Local Error GoTo catch:
Exc.Raise(4096, "myLib.myModule.aRoutine", _
Večvrstični opis trenutno izbranega elementa
' vaša koda sodi sem ...
finally:
Exit Sub
catch:
errTitle = "Napaka "& Exc.Number &" v vrstici "& Erl &" v "& Exc.Source
MsgBox Exc.Description, MB_ICONSTOP, errTitle
Resume finally
End Sub
Ukaz Error ali razredni modul, podoben Exception, lahko uporabite izmenljivo, pri čemer slednji prinaša dodatne funkcionalnosti.