Exemplo
Class::~Class() {
// Limpe referências à memória ...
int
error = cleanUp();
if
(error)
{
throw
str;
}
logDestruction();
// Pode emitir exceção
}
Solução
Verifique se nenhuma exceção deixa o destrutor capturando todas as exceções.
Class::~Class() {
try
{
// Limpe referências à memória
delete
pointer;
logDestruction();
}
catch
( ... ) {
// capture todos os erros aqui
}
}