udtrykket Resume
Nulstiller fejl-information og viser, hvad der skal udføres som det næste.
Resume [ [0] | label | Next ]
0: Nulstiller fejlinformation og genudfører den instruktion, der gav fejlen. 0 is optional.
label: :Nulstiller fejlinformation og genoptager udførelsen ved den angivne etiket i den aktuelle subrutine.
Next Nulstiller fejlinformation og udfører den instruktion, der følger den, der gav fejlen.
Fejlinformation er bygget med funktionerne Erl, Err og Error$.
Erl: Modulets linjenummer, hvor fejlen skete.
Err: Fejlnummer.
Error[$]: Fejlbeskrivelse.
Anvendelse af Resume til at nulstille fejlinformation forebygger, at den håndterede tilstand breder sig til kald af rutiner.
Eksempler:
Typiske fejlhåndteringsrutiner er: at alarmere brugeren, at fikse fejlen, at logge fejlinformation eller igen at kaste tilpassede fejl, der leverer forklaringer med instruktioner til løsning. Brug etiketten Resume, når du har brug for den slags mekanismer.
Sub Error_Handling
try: On Error GoTo catch
' rutinekode skrives her
Error 91 ' eksempelfejl
finally:
' rutinerengøringskode skrives her
Exit Sub
catch:
Print Erl, Err, Error$
Resume finally
End Sub ' Error_Handling
Brug for eksempel Resume Next, når du rapporterer anomalier, du er stødt på i en gentagen proces, som ikke må afbrydes. I det tilfælde kan det blive nødvendigt med flere håndteringsrutiner.
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
Med Resume uden parametre til at gen-udføre den fejlagtige instruktion kan passe i visse situationer. Det kan imidlertid forårsage en uendelig sløjfe.