
At Monday 2004-02-09 14:19, you wrote:
Stefan Seefeld <seefeld@sympatico.ca> writes:
Glen Knowles wrote:
Of course you cannot portably pass all exceptions, but you may be able to pass all the ones that use standard types.
And what if the std library or somebody else throws exceptions *derived* from the standard types? If it is not a recognized corba exception what the ACE TAO does is eat it with a catch(...) and then throws a corba system exception on
From: David Abrahams [mailto:dave@boost-consulting.com] the other side.
yes, so all exceptions that are allowed to pass have to be explicitely declared as such. If it is not declared, a special standard exception will be thrown (or may be something equivalent to 'unexpected'). If it is derived from a declared one, it will be sliced.
Is everyone convinced that propagating the exception into the joining thread is the right behavior or even semantically sensible?
I consider it equivalent to the asking for the results of a function whose execution was delayed. Most people only consider marshalling, dispatching, and results as a single step in which exceptions clearly make sense. I don't see the big difference when we split them up into different pieces. I further don't see a big distinction between the above and beginning a thread and join()ing it.
-- Dave Abrahams Boost Consulting www.boost-consulting.com
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Victor A. Wagner Jr. http://rudbek.com The five most dangerous words in the English language: "There oughta be a law"