...
The currently handled exception is rethrown if control reaches the end of a handler of the function-try-block of a constructor or destructor.
Thus, the caught exception will inevitably escape from the SomeClass
destructor. Note that exceptions thrown from noncompliant destructors of class member objects, or from base classes, cannot be handled as they are implicitly rethrown when control reaches the end of the function-try-block handler, which is the only way to catch such exceptions.
...
CERT C++ Secure Coding Standard | ERR37-CPP. Honor exception specifications ERR30-CPP. Do not call std::terminate(), std::abort(), or std::_Exit() |
MISRA 08 | Rule 15-5-1, "A class destructor shall not exit with an exception" |
...