Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2002-08-13 08:31:01

From: "Eric Woodruff" <Eric.Woodruff_at_[hidden]>
> Sure, the details of how to handle unexpected exceptions are up for
> Originally, bad_exception seemed fitting to me, but giving std::exceptions
> special treatment by borrowing its .what () can be useful. Have you
> my implementation?
> Anyhow, a boost::tuple is used to list the exceptions (which AFAIK
> infinite recursion, limited by the compiler of course). My proposed
> implementation only accepted up to 10 exceptions as parameters to the
> throws_exceptions policy, however, the user could easily construct their
> tuple for which they would like the boost::thread to support.

I think that a reasonable course of action is to specify that join throws
"an implementation defined exception" that may or may not be the real
exception caught in the thread.

The portable implementation can enumerate all standard exception types
explicitly, and it can test whether the exception is-a

struct propagated_exception
    virtual auto_ptr<propagated_exception> clone() const = 0;
    virtual void throw_this() const = 0;

in order to propagate arbitrary exceptions. The rest would have to be
translated to thread_exception (or however it's called.)

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