Nick Coghlan wrote:
> Martin v. Löwis wrote:
>> Alex Martelli wrote:
>> I think the standard exception hierarchy should grow additional standard
>> fields. E.g. AttributeError should have attributes 'type','name', or
>> perhaps even 'object','name'. TypeError should have attributes
>> 'expected', 'actual' (or, again, 'expected', 'object').
> 
>> And so on - that might produce quite a large PEP.
> 
> I don't think there's any reason to do it in one big bang. And
> approached individually, each such alternate constructor is a small RFE
> consisting of:
> 
> 1. Specific C API for creating exceptions of that type with a standard
> message and attributes
> 2. Python level class method
> 3. New attributes on the affected object
> 
> Point 3 would be optional really, since most of the gain comes from the
> better error messages. If extra attributes were included in such an RFE,
> the potential lifecycle implications of including references to actual
> objects rather than merely their types makes the better choice fairly
> obvious to me (i.e. just include the type information, since it
> generally tells you everything you need to know for TypeErrors and
> AttributeErrors).
> 
>> As 3.0 missed the
>> chance to fix this, compatibility is also an issue. It might be possible
>> to overload exception constructors on the number of parameters, or using
>> keyword parameters for the new way of filling the exception.
> 
> Or go the traditional "multiple constructor" route and provide class
> methods for the alternative mechanisms.
> 
Bear in mind, though, that as new functionality none of this can go in
before 3.1/2.7. So a PEP might not be a bad idea if only to establish
best practices.

regards
 Steve
-- 
Steve Holden        +1 571 484 6266   +1 800 494 3119
Holden Web LLC              http://www.holdenweb.com/

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to