If you do a throw; on its own, and there isn’t a current exception for it to rethrow, then the program ends abruptly. (More specifically, terminate() is called.)
Note that throw; is the only safe way to re-throw the current exception – it’s not equivalent to
catch (exception const & e) { throw e; }