ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1050005 Топик полностью
lloyd (06.11.2020 15:27, просмотров: 268) ответил Kabdim на Собственно за std::optional или его аналоги полностью согласен. Почему бы не впихнуть "совсем уж плохо" в тот же возвращаемый результат, если уж весь код пишется в таком стиле? Кмк все одно уйдет в остановку железа и ресет контроллера, зачем усложнять?
Исключения - это такой способ остановить выполнение последовательности операций и подняться до уровня, где их начали обрабатывать. К примеру запрос к СУБД - у вас там десяток SELECT'ов, пять INSERT'ов и 4 REPLACE. Все в перемешку, разумеется. Внезапно, у вас на 5ом запросе из 10 срабатывает нарушение constraint. Вы кидаете исключение и остальное не обрабатываете. catch блок откатывает БД к состоянию до запроса и замечательно ругаемся на клиента за кривые данные. 

Если возвращать ошибку через параметры, то придется эту работу делать раз по 10, потому что именно такой может быть глубина стека вызовов до того момента, когда у вас обнаружено нарушение, до того места, где его обработка несет какой-либо смысл.