Catching and rendering exceptions

Error handling in Zope 4

TL;DR: You have to write an exception view in file system code which is rendered when an exception occurs.

History

If an exception occurred in Zope 2 the standard_error_message (an object in the ZODB) was rendered. This way the error page could be customised through the web.

When using a WSGI server on Zope 2 the standard_error_message is not longer used. The exceptions have to be handled in a WSGI middleware. (This is not the optimal solution as the middleware is not run in the same execution context where the exception occurred.)

Thats why error handling changed in Zope 4 again:  Like Zope 3 (aka BlueBream) Zope 4 tries to lookup an exception view ff an exception occurs. If the lookup succeeds (aka there is an exception view registered for the current exception) this view is rendered as response. This approach allows different views for different exceptions. The standard_error_message is even gone when installing Zope 4 from scratch.

Continue reading “Catching and rendering exceptions”