Příklad

Class::~Class() {
// Vyčistit odkazy do paměti ...
int error = cleanUp();
if(error)
{
throw str;
}
logDestruction(); // Možné přes vyhození výjimky
}

Řešení
Ujistěte se, že žádné výjimky neopustí destruktor, zachycením všech výjimek.

Class::~Class() {
try {
// Vyčistit odkazy do paměti
delete pointer;
logDestruction();
}
catch( ... ) {
// zachytit zde všechny chyby
}
}