[Zope] Trying to trap ConflictError
Stefan H. Holek
stefan at epy.co.at
Tue Jul 4 11:02:07 EDT 2006
First, you should not - ever - catch a ConflictError. It is essential
for ConflictErrors to be propagated to the ZPublisher.
Second, the conflict is detected at commit time, which happens at the
very end of the REQUEST. This likely is a while after your method has
executed.
Stefan
On 4. Jul 2006, at 15:56, Jonathan wrote:
> I am trying to trap the following error:
>
> Traceback (innermost last):
> Module Zope2.App.startup, line 173, in zpublisher_exception_hook
> Module ZPublisher.Publish, line 121, in publish
> Module Zope2.App.startup, line 240, in commit
> Module transaction._manager, line 96, in commit
> Module transaction._transaction, line 380, in commit
> Module transaction._transaction, line 378, in commit
> Module transaction._transaction, line 433, in _commitResources
> Module ZODB.Connection, line 484, in commit
> Module ZODB.Connection, line 526, in _commit
> Module ZODB.Connection, line 554, in _store_objects
> Module tempstorage.TemporaryStorage, line 200, in store
> ConflictError: database conflict error (oid 0x39b0, class
> BTrees._OOBTree.OOBucket, serial this txn started with
> 0x0366974da4fd2288 2006-07-04 13:33:38.669252, serial currently
> committed 0x0366974da54d9fcc 2006-07-04 13:33:38.742942)
>
>
> in an external method, as follows:
>
> folder = self.unrestrictedTraverse(TEMPFOLDERIMAGES, None)
> try:
> folder.manage_addImage(imageId, imageData)
> except:
> <handle error message and return gracefully code>
>
>
> But the try/except block is not catching the error! (the error
> continues to show up in error_log)
> (note: I started by trying "except ConflictError:", but that was
> not working, so I went to the bare try/except)
>
> The traceback does not show where the error originates in the
> external method, but there is only one place where the external
> methods writes to TemporaryStorage. Does this indicate that the
> error is not bubbling up properly?
>
> Any ideas as to why the error trapping is not trapping? (running
> Zope 2.9.2, debug=on)
--
Anything that, in happening, causes something else to happen,
causes something else to happen. --Douglas Adams
More information about the Zope
mailing list