Collabora Office 24.04 Help
Wist de foutgegevens en geeft aan wat er vervolgens moet worden uitgevoerd.
Resume [ [0] | label | Next ]
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.
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.