I understand that in the following example a Resume statement should be used instead of a Goto statement.
Sub Method()
On Error Goto ErrorHandler
...
CleanUp:
...
Exit Function
ErrorHandler:
Log error etc
Err.Clear 'Is this line actually necessary?'
Resume CleanUp 'SHOULD USE THIS'
Goto CleanUp 'SHOULD NOT USE THIS'
End Sub
My question is what difference is there in the execution of the two?
Both transfer execution to the
Cleanuplabel. As far as I can remember, the only differences areGotodoesn’t clear the Err object (soErr.Clearis necessary if you useGoto) and it leaves your error handler disabled. If an error occurs after theCleanuplabel, it won’t be handled atErrorHandler.Resumeclears the Err object and it switches your error handler back on (it is disabled while it is handling errors). If an error occurs after theCleanuplable, it will be handled atErroHandlerThe VB6 manual entry for the Resume statement doesn’t explain these differences.