Boost logo

Boost :

Subject: Re: [boost] [exception]throw_exceptions concerns
From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2009-01-04 02:05:07

On Sat, Jan 3, 2009 at 5:43 PM, Gennadiy Rozental <rogeeff_at_[hidden]> wrote:
> Emil Dotchevski <emildotchevski <at>> writes:
>> On Fri, Jan 2, 2009 at 5:19 AM, Gennadiy Rozental
> Can you please elaborate? If I use
> boost::throw_exception( my_exception() );
> How do I catch it?

Did you try catch(my_exception &)? :)

The other two options are:

- catch(boost::exception &) - this catches any exception emitted by
boost::throw_exception. Also, see

- catch(...) - you can use current_exception/exception_ptr in any
catch, see

>> "Exposed to" is technically correct, but that exposure is limited to
>> "boost/exception/exception.hpp", which does not include any headers
>> and was carefully designed for the purpose of the throw_exception
>> integration.
> It adds <typeinfo>, which may be serious, since shared_ptr takes special care to
> work around the case when typeinfo is not supported by underlying system.

I'll repeat that "boost/exception/exception.hpp" does not #include anything.

Other Boost Exception headers do use <typeinfo>, but the library takes
the same special care as shared_ptr to work around the case when
typeinfo is not supported.

>> Boost::exception is copy constructable but its copy constructor is
>> protected to prevent the user from accidentally slicing the exception
>> object using a catch(boost::exception e) instead of the correct
>> catch(boost::exception & e).
> Fine. But both exceptions have to be disabled in a header (especially since it's
> now compiled pretty much always)

I read the above twice but I don't get what you're saying.

>> > a) Was it agreed that practically all Boost users are now exposed to the
>> > Boost.Exceptions library by default whether they are willing or not
>> There was rather lack of interest in discussion before this change in
>> throw_exception was implemented, but there was a later discussion
>> which lead to refactoring of the throw_exception hook.
> Can you please point me?

Here's one thread but there were a couple more before and after it:

Emil Dotchevski
Reverge Studios, Inc.

Boost list run by bdawes at, gregod at, cpdaniel at, john at