Inhoud

# Instructie Resume

Wist de foutgegevens en geeft aan wat er vervolgens moet worden uitgevoerd.

### Syntaxis:

         Resume [ [0] | label | Next ]

### Parameters:

0: wis de foutgegevens en probeer de instructie waarin de fout optrad opnieuw uit te voeren. 0 is optioneel.

label: Wis de foutgegevens en vervolg de uitvoering bij het aangegeven label in de huidige subroutine.

Next: Wis de foutinformatie en vervolg de uitvoering na de instructie waarin de fout optrad.

De foutgegevens worden verzameld met de functies Erl, Err en Error$.

- Erl: Regelnummer in de module waar de fout optreedt.

- Err: Foutcode.

- Error[$]: Beschrijving van de fout.

Door Resume te gebruiken om de foutgegevens te wissen wordt voorkomen dat er foutafhandeling plaatsvindt in de routines die de aanroep hebben gedaan.

### Foutcodes:

20 Hervatten zonder fout

## Voorbeelden:

Typische foutafhandeling betreft: de fout melden aan de gebruiker, het herstellen van de fout, het loggen van de de fout en het omzetten naar een fout met aanvullende informatie over oorzaak en mogelijke oplossingen. Gebruik Resume label wanneer u een dergelijk mechanisme wilt gebruiken.

          Sub Error_Handling
          try: On Error GoTo catch
              ' hier komt de code van de routine
              Error 91 ' voorbeeld van een fout
          finally:
              ' hier komt code van de routine om wat op te ruimen
              Exit Sub
          catch:
              Print Erl, Err, Error$
              Resume finally
          End Sub ' Error_Handling

Gebruik Resume Next wanneer de afwijking optreedt in een iteratief proces dat niet mag worden onderbroken, hierbij is mogelijk meerdere keren een foutafhandeling nodig.

          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

Het gebruiken van Resume zonder parameters om de instructie, die fout is gelopen, nogmaals uit te voeren kan in bepaalde gevallen goed zijn, maar het kan ook tot een situatie leiden dat dezelfde fout steeds blijft optreden.