we have a logger system which is printing error message depending on the LOGGER output selected (ex: logging to file, logging to output).
when the logging is configured to stdout, it prints the error message and flush is done on cout object. this is throwing an abort(). which is basically the handling in unwind_cleanup.
the source code has comment as follows -
/* When we get here a C++ catch block didn't rethrow the object. We
cannot handle this case and therefore abort. */
can anybody please explain in detail what is this comment mean? why at all object needs to be re-thrown from the catch block?