FoxWeb's error handler ensures that errors are logged and a useful (configurable) message is returned to the user. However, error handlers in VFP do not prevent dialogs that pop up in certain situations, such as when you try to access a table that is not open. In such cases, the dialog blocks program execution and the channel is left, waiting for keyboard input.
If the Restart Channels option is enabled (it should), then FoxWeb's Channel Monitor ensures that your channels are not lost for ever, but rather are killed and restarted, once they've been busy for longer than the Script Timeout setting. This is the reason why you should keep the Script Timeout to a minimum (< 30 seconds?) to extend it on an as-needed basis with the Server.AddScriptTimeout and Server.SetScriptTimeout methods.
The Illegal Commands topic in the FoxWeb documentation deals with this topic. Related information can also be found under the "Hanging channels, or channels that get restarted often" heading in the Common Problems topic.
Sent by Jerry Mattox on 12/04/2008 06:12:30 AM:
Here is a simple one.
IN the past I have written foxpro compiled exes to run on the webservers. This has nothing to do with foxweb. However in my code I always placed an ON ERROR RETURN in the code, so if an error occured the program would just exit & not hang the server for any reason.
I have now migrated this code to foxweb, and I am very happy with how easy it was for me to do. The routines I am refering to in this message do not have any output to the browser. They just grind data, and produce database tables as the result.
Can I now remove the ON ERROR RETURN from my code, and turn over the error checking to foxweb with out worry of hanging up the server. I tested this, and when I do get an error foxweb logs it, and seems to move on fine.
The only real error I get is when I try to delete a file that still might be in use. I have a routine that cleans up a temp folder, and it is possible that it might fail. ON ERROR RETURN system stops the program, and we run it again later. No harm. I like seeing the error though in the foxweb log, jso I can see how often it happens.
What if I did somthing stupid like a REPLACE on a table that is not in use?
Would I kill the foxweb channel? Yes, I have the system set to restart channels.
Thanks in advance