исключений в обработку кодов ошибок?
что в итоге будет both
А почему оба?
потому что окажется, что конкатенация путей потенциально бросает bad_alloc
А можете пример привести
я не знаю вашу предметную область, я просто указываю, что вы очень сильно можете недооценивать количество исключительных ситуаций внутри используемых вами функции (например, std::string::operator+)
Т.е обязательно нужно обработать все исключения?
Либо, все потенциально опасные места оборачивать в noexcept, тогда, если такой участок и выбросит исключение, то ваш процесс благополучно завершится.
а разве это плохо?...
Ну, кому как, СУБД - хорошо. Процессу управления атомной станцией наверное не очень хорошо
необходимость обработать исключения? То есть лучше чтобы они с вероятностью 10% мимо пролетали на атомной станции?)
В большинстве случаев можно обрабатывать все на самом верху, или не обрабатывать вообще, тогда приложение упадёт, что часто приемлемо (главное чтобы запись осталась об этом). Если исключения хорошо продуманы, то по исключению можно восстановить ситуацию.
Да именно что эта молотилка не должна падать
тогда лови все исключения на верху и не падай, продолжая молотить
В первую очередь на то, что надо это делать без фанатизма...
Если такое случается лучше прокинуть исключения до самого терминейта
А с обработкой эксепшнов в конструкторах что делать?
Есть некоторые исключения связанные с памятью например
А если обработка без эксепшнов?
надеюсь имеются в виду не те что летят от проца
Делай коды ошибок, только там где ошибки возможны, но их можно предвидеть, ошибки, которые нельзя предвидеть, не стоит обрабатывать, лучше уронить программу
Да не работает так
лови bad_alloc и выходи
Можно свой аллокатор наверное подсунуть, который будет делать все как надо
Конструкторы особый случай, с ними ничего не попишешь, хотя есть вариант вернуть сконструированный объект с "ошибочным" состоянием
Обсуждают сегодня