Turinys

# Atstatyti sakinį

Atstatoma klaidos informacija ir nurodoma, ką reikia atlikti toliau.

### Sintaksė:

         Resume [ [0] | label | Next ]

### Parametrai:

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.

### Klaidos kodai:

20 Operatorius „resume“ neapdoroja klaidos

## Pavyzdžiai:

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ą.

Paremkite mus!