Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2002-08-16 10:13:41


From: "Eric Woodruff" <Eric.Woodruff_at_[hidden]>
> What?
>
> Peter, how can you catch an std::exception& and then write throw
> make_transportable_exception(std::logic_error()); The type is unknown
unless
> we can change how it was thrown and that is not possible.

make_transportable_exception(std::logic_error()) returns a
wrapped_exception<std::logic_error>, which derives from both
std::logic_error and transportable_exception.

Therefore, a catch clause that would handle std::logic_error can handle
wrapped_exception<std::logic_error>, too.

If you mean that we can't catch an arbitrary exception thrown by user code,
wrap it in a wrapped_exception<> and rethrow, yes, but we cannot put it in a
shared_ptr<> either. The users are still required to modify their throw
points.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk