Esempio

Class::~Class() {
// Cancellazione dei riferimenti alla memoria ...
int error = cleanUp();
if(error)
{
throw str;
}
logDestruction(); // Puņ emettere un'eccezione
}

Soluzione
Verificare che nessuna eccezione lasci il distruttore aggiungendo tutte le eccezioni.

Class::~Class() {
try {
// Cancellazione dei riferimenti alla memoria
delete pointer;
logDestruction();
}
catch( ... ) {
// rileva qui tutti gli errori
}
}