|
Boost : |
From: Eric Woodruff (Eric.Woodruff_at_[hidden])
Date: 2002-08-13 13:07:45
Of course order matters. I caught them in the order specified in the list.
----- Original Message -----
From: David Abrahams
Newsgroups: gmane.comp.lib.boost.devel
Sent: Tuesday, 2002:August:13 1:32 PM
Subject: Re: Attempting resolution of Threads & Exceptions Issue
----- Original Message -----
From: "Victor A. Wagner, Jr." <vawjr_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Tuesday, August 13, 2002 1:43 PM
Subject: Re: [boost] Attempting resolution of Threads & Exceptions Issue
> At Tuesday 2002/08/13 05:09, you wrote:
> >From: "Victor A. Wagner, Jr." <vawjr_at_[hidden]>
> > > At Monday 2002/08/12 14:22, you wrote:
> > > >Dale wrote:
> > > >
> > > > >1) thread<void> threads call terminate(), thread<XXX> threads
> >propogate the
> > > > >exception when join is called.
> > > >
> > > >Propogating an exception in an different thread context than it
started
> > > >in (different stack, specifically) is a hard, if not impossible,
> >problem.
> > >
> > > it seems trivial to me, providing that you can accurately asses what
the
> > > exception is!
> >
> >Aye, there's the rub. You can't "accurately asses what the exception
is",
> >since EH will catch base classes and in general there's no way to
recover
> >the most-derived class, even when catching by [const] reference.
>
> if you know, a priori, the set of possible exceptions, you can recover
them.
Even that's not enough; you need to know the order in which to look for
them:
try { something(); }
catch(std::exception) {
std::cout << "x";
}
catch(std::bad_alloc) {
std::cout << "y";
}
Never prints "y".
-----------------------------------------------------------
David Abrahams * Boost Consulting
dave_at_[hidden] * http://www.boost-consulting.com
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk