When you get an error and it calls the error handler you need to tell it to go back to the top of main. Well when you are inside a function(error handler) and you tell it to goto a label in main, it says that it doesn't exist, cause it's looking for the label in the error handler.
"If your not part of the solution, there's good money to be made in prolonging the problem."
Here's one way that it can be done. It may be more code than you want to include, but it works. You need to run your script as a child script and then create a driver script that handles rerunning the script when it fails. The child script in this case tries to write to notepad which is not open.
public script ;used for logging script failure and processing if logic
x = 0 ;used to execute script specified #times
script = ""
Run( "ChildLabelDemo" );child script with your code.
if script <> "" and x < 2
LogComment( "Script " +script +"Failed, Re-executing" )
x = x + 1