[Zope-dev] exception hiding in _delObject
Florent Guillaume
fg at nuxeo.com
Tue Nov 9 10:45:17 EST 2004
In _delObject and manage_beforeDelete there's a try/except that catches
nearly everything (except BeforeDeleteException and the infamous
ConflictError). It then proceeds to log a message, but continues:
try:
object.manage_beforeDelete(object, self)
except BeforeDeleteException, ob:
raise
except ConflictError: # Added for CPS
raise
except:
LOG('Zope',ERROR,'manage_beforeDelete() threw',
error=sys.exc_info())
pass
The rationale is, I guess, that when you delete an object you really
want it gone.
This is IMO very harmful because it hides any bug in the catalog or the
indexes (especially during unit tests where LOG is ignored). I've been
(again) bitten by it.
I'd like to condition the pass to the fact that the current user is
Manager. Otherwise I'd like it to fail (and reraise). So a Manager will
still be able to delete objects when there's a bug, but not others.
Comments ?
Florent
--
Florent Guillaume, Nuxeo (Paris, France) CTO, Director of R&D
+33 1 40 33 71 59 http://nuxeo.com fg at nuxeo.com
More information about the Zope-Dev
mailing list