In C++, the
--exceptions option enables the use
of throw and try/catch, causes function exception specifications
to be respected, and causes the compiler to emit unwinding tables
to support exception propagation at runtime.
In C++, when the
--no_exceptions option is specified,
throw and try/catch are not permitted in source code. However, function
exception specifications are still parsed, but most of their meaning
In C, the behavior of code compiled with
undefined if an exception is thrown through the compiled functions.
You must use
--exceptions, if you want exceptions to
propagate correctly though C functions.