Instructie Resume

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

Syntaxis:

Diagram instructie Resume

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

tip

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
warning

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.


Help ons, alstublieft!