exception handling in complex Python programs
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 : 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
* 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