This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Implementing Exception Propagation (N2179)


Sebastian Redl:

[18.7.3.3]/2
"Calls the terminate_handler function in effect immediately after evaluating the throw-expression, if called by the implementation, [...]"


What about rethrow_exception(), then? Should it copy the terminate and unexpected handlers from the old exception, and thus act like the current implementation of rethrow? Or should it acquire the current handlers anew and thus pretend it contains a throw-expression?

FWIW, my general intent was for rethrow_exception to behave exactly as throw; does in the "synchronous" case. In this case this would imply acquiring the current handlers as mandated by the standard. A possible rationale for this behavior is that the old handlers may be obsolete by the time rethrow_exception is called. (Some compilers even make them thread-specific, but I'm not sure whether this will be conforming in C++0x.)



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]