Zacząłem używać wyjątków C++ w jednolity sposób, a teraz chciałbym, aby kompilator (g ++) sprawdził, czy nie ma "nieszczelności wyjątków". Dekoracja throw
powinna to zrobić, podobnie jak w przypadku metod klasowych, takich jak const
.Czy jest jakiś użytek do dekoracji rzutów w C++?
Cóż, nie ma.
Używanie jest nadal dokumentem, ale może nawet być niebezpiecznie mylące, jeśli inni uważają, że funkcja nie może wyrzucać innych wyjątków niż te wymienione w dokumentacji.
Czy g ++ może być w jakiś sposób przekonany, aby być bardziej rygorystycznym w sprawdzaniu rzucania, tzn. Upewniając się, że funkcja udekorowana jako throw()
nigdy niczego nie rzuci.
Edytuj: Znaleziono this question szeroko obsługujący ten temat.
Podobne pytanie tutaj: http://stackoverflow.com/questions/1037575/why-arent-exceptions-in-c-checked-by-the-compiler – Glen