W moim destruktorze muszę wyczyścić kilka zasobów. Powiedzmy, że mam trzy połączenia, aby wyczyścić zasoby, które mogą rzucić. Ponieważ nie jest dobrze, aby pozwolić wyjątkowi na opuszczenie destruktora, jaki powinien być mój wzorzec projektowy? Podobno droga poniżej nie jest skalowalna.Wyjątek w destruktorze
Dzięki.
class B::~B(){
try{
clearResourceA()
}
catch{
try{
clearResourceB();
}
catch{
clearResourceC();
}
clearResourceC();
}
clearResourceB();
.
.
}
Jest * zdecydowanie * nie jest skalowalny. Próbując zarządzać tylko trzema zasobami, masz już błędy logiczne. – nobar