exception handling in complex Python programs

eliben eliben at gmail.com
Fri Aug 22 06:57:49 CEST 2008

> Here is an example from a Django web app: when there is a bug, a
> generic Exception is thrown and Django catches it and reports a
> beautifully formatted stack trace. When something must be reported to
> the user, a MyAppException is thrown (not the real name). The HTTP
> request handler for the application is wrapped in a single try:...
> except MyAppException:.... the big idea is that there should be a
> maximum of two try/except blocks on the stack at any particular point
> in time [1]: at a high level (already mentioned) and for wrapping
> primitive "execute" operations against Rpy and MySQLdb.

This actually makes lots of sense as is exactly what Ned Batchelder
wrote here:

    * A-layer generates exceptions,
    * B-layer can often ignore the whole issue, and
    * C-layer decides what to do

It's worth a read.

More information about the Python-list mailing list