Class::~Class() { // Удаление ссылок на память ... int error = cleanUp(); if(error)
{ throw str;
}
logDestruction(); // Может быть сформировано исключение
}
Решение
Обработка всех исключений, чтобы ни одного исключения не вышло за пределы деструктора.
Class::~Class() { try { // Удаление ссылок на память delete pointer;
logDestruction();
} catch( ... ) { // обработка всех ошибок здесь
}
}