I'd just like to add that yet another reason to go with
explicit rethrows instead of implicit rethrows is that
the compiler expects that
catch (...) { }
consumes all exceptions, and so will DCE EH cleanups for
objects in outer scopes of the same function. Disabling
this optimization is almost certainly a bad idea.
r~