Turinys

# Err ojektas [VBA]

Naudokite objektą VBA Err, kad rastumėte arba apdorotumėte vykdymo klaidas.

Err įterpta į VBA globalųjį objektą, kuris leidžia:

- rasti iš anksto apibrėžtas „Basic“ klaidas

- atsisakyti vartotojo apibrėžtų išimčių

- įvardyti paprogramą, kurioje atsirado klaida

- apibūdinti klaidą ir galimus sprendimo būdus

Ši konstanta, funkcija arba objektas yra įjungiami su sakiniu Parinktis „VBASupport 1“ įdedama prieš vykdomos programos kodą modulyje.

VBA Err objekto savybės ir metodai:

## Savybės

             Err.Description As String

Savybė Aprašas nurodo klaidos pobūdį. Aprašymas išsamiai aprašo įvairias priežastis, kurios gali iššaukti klaidas. Geriausia, jei pasiūlomi keli veiksmai, padedantys spręsti problemą ir užkirsti kelią klaidų kartojimuisi. „Basic“ slapyvardis yra iš anksto nustatytų „LibreOffice“ klaidų Error funkcija.

             Err.Number As Long

Su klaida susijęs klaidos kodas.Err objekto numatytoji savybė yra Skaičius. „LibreOffice Basic“ slapyvardis yra Err funkcija.

             Err.Source As String

Šaltinis nurodo paprogramės, kuri sukelia klaidą, pavadinimą. Šaltinis yra vartotojo apibrėžtų klaidų parinktis.

## Metodai

             Err.Clear()

Atstatyti esamos klaidos aprašą Erl, skaičiųir šaltinio savybes. „LibreOffice Basic“ slapyvardis yra Atstatyti sakinys.

             Err.Raise(Number As Long, Optional source As String, Optional description As String)

Pateikia vartotojo apibrėžtas klaidas arba iš anksto nustatytas klaidas. „LibreOffice Basic“ slapyvardis yra Klaida sakinys.

### Parametrai

Skaičius: Vartotojo apibrėžtas arba iš anksto nustatytas klaidos kodas, kurį reikia paskelbti.

Klaidų kodų intervalas 0–2000 yra rezervuotas programai „LibreOffice Basic“. Vartotojo apibrėžtos klaidos gali prasidėti nuo didesnių reikšmių, kad būtų išvengta nesusipratimų su būsimais „LibreOffice Basic“ išplėtimais.

Šaltinis: klaidą sukeliančios paprogramės pavadinimas. Rekomenduojamo pavadinimo forma „myLibrary.myModule.myProc“.

Aprašymas: Problemos, dėl kurios stabdomas vykdomas procesas drauge su įvairiomis priežastimis, kurios gali jį sukelti, aprašymas. Rekomenduojamas išsamus galimų veiksmų, kurie gali padėti išspręsti problemą, sąrašas.

### Pavyzdys:

             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, Aprašymas:="Tai yra vartotojo apibrėžta klaida…"
                 Err.Raise(4096, "Standard.Module1.ThrowErrors", aDesc)
                 Exit Sub
             AlertAndExecNext:
                 errTitle = "Klaida "& Err &" eilutės Nr. "& Erl &" šaltinis "& Err.Source
                 MsgBox Err.Description, MB_ICONEXCLAMATION, errTitle
                 Resume Next
             End Sub

## ClassModule išimtis

Trumpas modulis ClassModule, kuris sulanksto VBA Err objektą, gali paskirstyti Err standartinio „LibreOffice Basic“ modulio savybes ir metodus.

             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

## Pavyzdys

             Function Exc As Object
                 Exc = New Exception
             End Function

             Sub aRoutine
             try:
                 On Local Error GoTo catch:
                 Exc.Raise(4096, "myLib.myModule.aRoutine", _
                     "Bet koks šios vartotojo apibrėžtos išimties kelių eilučių aprašymas")
                 ' jūsų kodas eina čia
             finally:
                 Exit Sub
             catch:
                 errTitle = "Klaida "& Exc.Number &" eilutėje "& Erl &" šaltinis "& Exc.Source
                 MsgBox Exc.Description, MB_ICONSTOP, errTitle
                 Resume finally
             End Sub

Error sakinį ar į išimtį panašų klasės modulį galima naudoti pakaitomis, nors pastarieji prideda papildomų funkcijų.

Susijusios temos

Klaidas apdorojančios funkcijos

ClassModule parinkties sakinys

Pasirinktinis VBASupport sakinys

ScriptForge.Exception service