there's nothing wrong with err handlers. get the error number and description by erroring it out on purpose, then write a handler, which all code should have anyway.
ALWAYS check for err.number and err.description in visual basic, simply because many errors are assigned the same number, but that combination of properties should never be equal.
so, for instance:
Code:
sub testRoutine()
on error goto errHandle
PrimaryCodeBlock:
app.followlink "link"
...
...
...
SecondaryCodeBlock:
'do other stuff if your error happens
...
...
...
exit sub
errHandle:
if err.number = TargetEnumValue and err.description = "what the error tells you here" then
'tell the user that the link does exist and exit or go to a labeled line...
goto SecondaryCodeBlock
else
msgbox "an error occurred! see the administrator!"
end if
end sub