Help me to catch this exception :-)
Mardy
mardy at users.sourceforge.net
Wed Nov 23 15:35:28 EST 2005
Hi all,
I have written a slightly modified version of the CGIHTTPServer; the
difference with the module included in the standard python distrubution is
that, since I know that the CGI to be executed is a python script, I
always execute it via the execfile() function, instead of opening a
separate process.
But there's a problem: in the CGI, I'm using the cgitb module to catch
exceptions and send them to the browser. This doesn't work. Here is what
happens when a exception is raised from the CGI:
1) the client (HTTP browser) waits for data, which don't came (while I'd
like the cgitb module to display the exception);
2) the exception is propagated to the CGIHTTPServer, which shows it on
the standard error (where noone will ever see it);
3) when I interrupt the HTTP server with Ctrl+C, the KeyboardInterrupt
exception is sent (beautified by cgitb) to the HTTP browser!!!
I can correct (3) by saving the value of sys.excepthook before the call to
execfile and restoring it in the finally clause, but this doesn't solve my
problem. Is there a way to run a python file as if it were a separate
process? That is, forbidding execfile() to modify anything in the caller?
--
Saluti,
Mardy
http://interlingua.altervista.org
More information about the Python-list
mailing list