Identifying exceptions that can be raised

Peter Hansen peter at engcorp.com
Mon Nov 22 20:25:53 EST 2004


Jim Hefferon wrote:
> Peter Hansen <peter at engcorp.com> wrote ..
> 
>>The usual approach is to have a caller catch exceptions
>>*which it is capable of dealing with appropriately*, and
>>ignore others.  In some cases it's necessary to have a
>>"generic" exception handler, such as at the top level of
>>a thread, to catch and log all exceptions, but that's
>>relatively rare.
> 
> I wonder if perhaps you don't write different kinds of programs than I
> do.

I certainly do.  I don't, for example, ever do CGI...

> For instance, I have a cgi program.  One routine will get an id from a
> httpd parameter, use it to reach into a database and fetch some xml,
> and then pull information out of the xml for display.  That I can
> tell, there are about 100 exceptions that could be raised ...

...but were I faced with this situation, I would follow my
above advice about "in some cases it's necessary...".  This
is exactly such a situation.  I would always wrap such a
program** at the top level with a generic exception handler
and a call to traceback.format_exception() (or whatever it's
called), turning any errors into visible results, or at
the very least logging them somewhere for analysis.

** I don't think of CGI calls as independent _programs_, mind
you, any more than I think of individual threads as programs,
but I'm not sure this is affecting my opinion here vis-a-vis
exception handling.

-Peter



More information about the Python-list mailing list