On Fri, 09 Nov 2007 07:52:13 +0100, Jeroen Vloothuis wrote:
> Perhaps we should make handling these subscribers more robust by
> default?

This is an important question and we already talked about it a bit. We 
can have two basic approaches:

1. let an exception raised as currently

This has the advantage that we consider the things that are done by the 
event handlers not optional but essential part of the application. If 
they do not happen the application is broken, it is best to signal that 
with an exception so we are forced to fix it

2. swallow them generically and maybe log it

This has several problems. First part of the application is silently not 
running correctly altough it seems to run. Second we usually do not 
discover if this happens. Third it is against the "explicit is better 
then implicit" principle.


Let me tell a real life example. There are currently two event handlers 
on plone.app.kss trunk, that are broken for whatsoever reason (probably 
another component programmer made a change somewhere else, without caring 
that our tests actually fail as a consequence). I did not want plone 
trunk to break entirely but I also did not have time to fix them yet. So 
I disabled the event handler code and I am logging an ERROR saying that 
the code needs to be fixed each time it is invoked.

Even this way, because I disabled the exceptions, probably none of you 
have noticed that there is a problem at all. So fixing the problem is 
pushed to infinity. But at least I needed to manually disable the events 
which is I believe much better then the option 2. when it would just 
magically happen.


However in current case I suggest we really take a deep look of what 
happens, because acquisition + portal_factory problems can be a real pain 
if ignored.

-- 
Balazs Ree

_______________________________________________
Kss-devel mailing list
Kss-devel@codespeak.net
http://codespeak.net/mailman/listinfo/kss-devel

Reply via email to