Does throw inside a catch ellipsis (…) rethrow the original error in C++?
If in my code I have the following snippet: try { doSomething(); } catch (...) { doSomethingElse(); throw; } Will the throw rethrow the specific exception caught by the default ellipsis handler? Yes. The exception is active until it's caught, where it becomes inactive. But it lives until the scope of the handler ends . From the standard, emphasis mine: §15.1/4: The memory for the temporary copy of the exception being thrown is allocated in an unspecified way, except as noted in 3.7.4.1. The temporary persists as long as there is a handler being executed for that exception. That is: catch(...)