Catch blocks define how to deal with exceptions. It is possible to partially handle an exception before passing it on to a higher level for
complete handling with the empty throw statement throw;
.
However, when an empty throw is called outside of a catch clause, and there is no exception object to re-throw, the program will call
std::terminate
. This will cause the program to end, which is unlikely to be the expected behavior.