Re[23]: Какие у исключений проблемы?
От: AlexRK  
Дата: 14.11.14 07:19
Оценка: -1
Здравствуйте, AlexRK, Вы писали:

ARK>Да блин, мне _вообще_ непонятно, какова должна быть грамотная стратегия обработки ошибок при финализации.

ARK>Если у нас есть блок, внутри которого содержатся 10 автоматических переменных, то что должно произойти при выходе из блока, если при вызове первого деструктора вылетела ошибка?
ARK>Если бы был полный STM с учетом IO, то все было бы супер. Но его нету. Что делать? Выполнять остальные деструкторы или нет? Все ошибки из всех деструкторов склеить в одно исключение и кидануть его наверх?

Прочитал http://rsdn.ru/forum/cpp/4908728.all
Автор: Evgeny.Panasyuk
Дата: 27.09.12
, подумал.

Пока что все выглядит так, что я открываю Америку — деструкторы не должны возвращать ошибку, а все действия, которые могут ее вернуть, должны быть вызваны явно. По сути мы просто перекладываем всю логику обработки на программиста.

Но в этом свете хваленый RAII оказывается просто пшиком, потому что безошибочно с гарантией освободить можно только память.
Не, можно конечно просто плюнуть на полную корректность, как в С++ и поступают. "Подумаешь, файл не закрылся, этого почти никогда и не бывает."
Но для меня такой вариант неприемлем.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.