Well, thats the caveat when you have the tool take over the control. Ideally, when you stop an execution it should be controlled via the code, but nevertheless, QTP has the option so why not use it. However, it ends up like you can either have the egg or the chicken 
Now since it is controlled by QTP and you cannot insert a code after the error occurs, the easiest would be to,
"Look for any open browsers and if they exist close them before a test execution Starts".
However, this would be a very primitive and not a best practice suggestion. The best way to do this is to handle errors in the code using the On Error Resume Next and then capturing those errors using Err.Number and logging them. This way you will have un-interrupted execution as well you know specifically the ones which failed.

Now since it is controlled by QTP and you cannot insert a code after the error occurs, the easiest would be to,
"Look for any open browsers and if they exist close them before a test execution Starts".
However, this would be a very primitive and not a best practice suggestion. The best way to do this is to handle errors in the code using the On Error Resume Next and then capturing those errors using Err.Number and logging them. This way you will have un-interrupted execution as well you know specifically the ones which failed.
Basanth
Give a fish to a man and you feed him for a day..Teach a man how to fish and you feed him for life.
Give a fish to a man and you feed him for a day..Teach a man how to fish and you feed him for life.