Dimitry Sibiryakov |
---|
Насколько я понимаю, идеология С++ гласит, что в ошибочных ситуациях из функций должны выкидываться исключения, которые потом ловятся и обрабатываются. А что делать с предупреждениями? Неужели, как и в С, проверять их наличие после каждого вызова? |
Нет никакой единой идеологии С++.
Кто не хочет, может не использовать исключения.
То же самое с классами и шаблонами.
В этом и суть мультипарадигменности С++.
Касательно того в каких случаях бросать исключения а в каких возвращать код, то по этой теме столько же мнений сколько людей ))
Я лично применяю такой подход.
Если задача функции выполнить некое действие, то она бросает исключение если не смогла его выполнить.
Если же задача - произвести проверку, то результат проверки возвращается кодом (bool, int).
Понятно что второе это частный случай первого. Если проверку не удалось произвести то бросается исключение.
Никакого деления на ошибки и предупреждения не требуется.
Предупреждения просто логируются и не влияют на ход выполнения алгоритма.