Exemple

Class::~Class() {
// Nettoyage des références à la mémoire ...
int error = cleanUp();
if(error)
{
throw str;
}
logDestruction(); // Emission possible d'une exception
}

Solution
Assurez-vous qu'aucune exception ne laisse de destructeur en interceptant toutes les exceptions.

Class::~Class() {
try {
// Nettoyage des références à la mémoire
delete pointer;
logDestruction();
}
catch( ... ) {
// Interception de toutes les erreurs ici
}
}