[7] Je pravdou, že výjimky zde nejsou řešeny. Asi by to stálo za úvahu. Já osobně bych výjimku povolil, tak jak výjimky v destruktorech povoluji ve všech svých projektech... za předpokladu správného používání funkce std::uncaught_exception(). Je tam ale předpoklad, že i v případě výjimky v destruktoru je objekt považován za uklizený, a výjimka jen informuje o nastalé chybě během úklidu. Potom lze výjimku "zahodit", když vznikne během úklidu kvůli jiné výjimce, a z toho důvodu se ten test rozděluje podle výsledku funkce std::uncaught_exception()
~dtor() try {
//uklid
} catch (...) {
if (std::uncaught_exception()) return; //viz norma C++, výjimky v destruktorech
}
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 51 345×
Přečteno 24 120×
Přečteno 22 941×
Přečteno 21 190×
Přečteno 17 886×