[EMAIL PROTECTED] writes:

>> -----Original Message-----
>> From: David Abrahams [mailto:[EMAIL PROTECTED]
>> Sent: 02 September 2003 18:46
>> >
>> > /2/ Instead of guessing we can ask him.  He is amazingly 
>> tolerant of idiot
>> > questions.  :)
>> 
>> Go for it ;-)
>
> Done: here is what he has to say (with my summary of the discussion elided
> for brevity)...
>
>> -----Original Message-----
>> From: Bjarne Stroustrup [mailto:[EMAIL PROTECTED]
>> Sent: 03 September 2003 16:57
>>
>> There wasn't much experience with exceptions at the time I 
>> wrote that. I saw it 
>> in a few examples and extrapolated. Note that the amount of 
>> anti-MI hype tends 
>> to eliminate even good examples from common use.
>> 
>> >Are you still of the opinion that this design is both common and good
>> >practice?  And have you time to explain why?
>> 
>> I think that multiple inherited exception can be good design, 
>> for all the usual reasons for MI. I don't think we 
>> need to go to virtual bases.  That's a 
>> complication that I don't see the need for. 
>> 
>> The example quoted by Dave with the ambiguous what() should - 
>> as ever - be resolved by overriding what() in the derived class.

I guess Bjarne misunderstood the example.  It had nothing to do with
what() at all.

The problem is that if the exception has multiple std::exception base
subobjects, a

  catch(std::exception const&)

clause will fail to catch the exception at all.  For people who are
trying to avoid using catch(...) I consider this to be a terrible
danger, since it happens only rarely, at runtime, and usually leads to
termination.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to