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
}
}