[Zope-dev] Redesign suggestion for IReRaiseException
Christian Theune
ct at gocept.com
Thu Sep 17 15:11:55 EDT 2009
On 09/17/2009 01:48 PM, Martijn Faassen wrote:
> Hey,
>
> Christian Theune wrote:
>> I'd like to suggest a redesign of the IReRaiseException.
>>
>> I found this when reviewing revision 103682 and stumbled over the naming
>> of the interfaces and that the interface only mentions a __call__ to
>> retrieve a fact.
>>
>> IMHO this pattern smells like we should design an interface like this:
>>
>> class IPublisherExceptionInfo(Interface):
>>
>> reraise = Attribute('A boolean indicating whether '
>> 'this exceptionshould be reraised')
>>
>> Advantage: I find it much easier to read from a conceptual level.
>>
>> Disadvantage: Composition of policy by bundling *many* attributes in
>> this way will be harder.
Note to self: this disadvantage isn't really a disadvantage. The
publisher states what information about an exception it can deal with
and policies are free to split up that interface themselves if they need
fine-grained control.
> This would be an interface on exceptions, right? Would it try to adapt
> exceptions raised to IPublisherExceptionInfo and if successful look at
> this attribute? So an exception can either implement this interface
> directly, or you could register an adapter for exceptions?
Yes, I'd say it would perform an adaptation using
`IPublishExceptionInfo(exc)` so it can either implement it directly or
adapt.
> In general I'm fine with modifying this behavior on trunk. We also
> backported this behavior to the 3.4 line of zope.publisher so we can use
> it with Grok, which on zope.publisher 3.4.9. I suggest we maintain the
> current behavior in zope.publisher 3.4 but I'm fine with changing the
> behavior of the trunk. When we upgrade to that version we can make the
> necessary adjustments in Grok too.
I agree.
Christian
--
Christian Theune · ct at gocept.com
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 0 · fax +49 345 1229889 1
Zope and Plone consulting and development
More information about the Zope-Dev
mailing list