O>>И тогда код с сериализацией в файл будет выглядеть так:
O>>O>>FileObject fo("/foo/bar", "w");
O>>fo.WriteString("foo");
O>>fo.WriteString("bar");
O>>fo.WriteInteger(123);
O>>fo.Flush();
O>>if (fo.GetError()) ShowMessage(fo.GetError(true)->Text);
O>>
TB>Я так понимаю, если промежуточная операция не удалась, то весь остальной код продолжает работать как ни в чём не бывало, и лишь операции с тем же FacilityID перестают выполняться? Звучит сомнительно
Почему сомнительно? Зачем проверять что операция не удалась на каждом ее этапе, если в принципе ничего не измениться если я это проверю только тогда, когда мне нужно определиться с ее финальным статусом? В большинстве случаев это вполне допустимо. В данном случае — ну не удалось сохранить файл, покажем юзеру мессагу он ткнет ретрай и сохраним еще раз, или отмену. Что даст осознание факта неудачи прям в тот самый момент? Даст лишь +100500 строк проверки на код ошибки если у нас сериализация здорового объекта. Такая вот крайность. Исключения — это можно сказать противоположная крайность. Истина — она всегда посередине.