> 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: http://nedbatchelder.com/text/exceptions-in-the-rainforest.html * A-layer generates exceptions, * B-layer can often ignore the whole issue, and * C-layer decides what to do It's worth a read. -- http://mail.python.org/mailman/listinfo/python-list