Description
Because C code is not exception safe, C++ callbacks invoked by C code need to terminate rather than allow exceptions to escape. This could be done by labeling these callbacks as noexcept, except that several compilers do not correctly implement noexcept. Instead, we should just wrap the bodies of these functions in try { } catch (...)
{ std::terminate() }.