LibreOffice 7.5 žinynas
Atstatoma klaidos informacija ir nurodoma, ką reikia atlikti toliau.
Resume [ [0] | label | Next ]
0: Iš naujo nustatoma klaidos informacija ir vykdoma instrukcija, sukėlusi klaidą. 0 yra pasirinktinis.
žymė: Atstatoma klaidos informacija ir atnaujinamas vykdymas nurodytoje dabartinio paprogramės etiketėje.
Toliau: Iš naujo nustato klaidos informaciją ir vykdo nurodymą pagal tai, kas sukėlė klaidą.
Klaidos informacija remiasi funkcijomis Erl, Err ir Error$.
Erl: Modulio eilutės numeris, kur įvyko klaida.
Err: Klaidos numeris.
Error[$]: Klaidos aprašas.
Naudojant Tęsti klaidos informacijai, užkertamas kelias valdomai sąlygai kreiptis į paprogrames.
Tipiškos klaidų tvarkymo procedūros: įspėti vartotoją, ištaisyti klaidą, registruoti klaidų informaciją arba priimti vartotojo atmestas klaidas, kurios pateikia paaiškinimus su sprendimo instrukcijomis. Jei reikia tokių mechanizmų, naudokite Atnaujinti etiketę.
Sub Error_Handling
try: On Error GoTo catch
' paprogramės kodas eina čia
Error 91 ' pavyzdžio klaida
finally:
' paprogramės šalinimo kodas eina čia
Exit Sub
catch:
Print Erl, Err, Error$
Resume finally
End Sub ' Error_Handling
Pavyzdžiui, naudokite Toliau tęsti, jei pranešate apie pakartojimus, kurių pasitaikė iteraciniame procese, kurio negalima nutraukti. Tokiu atveju gali prireikti paprogrames apdoroti keletą kartų.
Sub Iteration
planets = Array("☿","♀","♁","♂","♃","♄","⛢","♆")
try:
On Error GoTo ReportAndProcessNext
For ndx = -3 To 11 Step 1
MsgBox planets(ndx)
Next
On Error GoTo 0 ' Stop error catching
finally:
Exit Sub
ReportAndProcessNext:
Print "Error "& Err &" at line "& Erl &" - "& Error$
Resume Next
End Sub ' Iteration
Naudojant Tęsti be parametrų, norint iš naujo įvykdyti klaidingą instrukciją, gali tikti tam tikros situacijos. Tačiau tai gali sukelti amžiną ciklą.