$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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.