Non-Rules and myths
NR.6
Не помещайте все действия по очистке в конец функции и не используйте `goto exit`
Причина
goto подвержен ошибкам. Этот приём является доисключительным способом RAII-подобного управления ресурсами. Это источник ошибок дублирования.
Пример (плохой)
void f(int n)
{
// ...
auto p = new X[n];
// ...
if (q) goto exit;
// ...
exit:
delete[] p;
// ...
}
Альтернатива
- Используйте объекты с деструкторами — RAII
- Используйте
finally