Сообщение Re[6]: RAII и исключения в конструкторе от 11.07.2020 10:25
Изменено 11.07.2020 10:32 rg45
Re[6]: RAII и исключения в конструкторе
Здравствуйте, Maniacal, Вы писали:
M>Есть такая книжка хорошая, только не помню как называется, что-то типа "С++ для профессионалов", что-то то там про количество советов было в названии.
M>Конструктор не должен бросать исключений принципиально.
Книжка эта называется Стандарты программирования на C++. 101 Правило и рекомендация.. И речь в ней идет не о конструкторах, а о деструкторах: 51. Деструкторы, функции освобождения ресурсов и обмена не ошибаются.
M>Есть такая книжка хорошая, только не помню как называется, что-то типа "С++ для профессионалов", что-то то там про количество советов было в названии.
M>Конструктор не должен бросать исключений принципиально.
Книжка эта называется Стандарты программирования на C++. 101 Правило и рекомендация.. И речь в ней идет не о конструкторах, а о деструкторах: 51. Деструкторы, функции освобождения ресурсов и обмена не ошибаются.
Re[6]: RAII и исключения в конструкторе
Здравствуйте, Maniacal, Вы писали:
M>Есть такая книжка хорошая, только не помню как называется, что-то типа "С++ для профессионалов", что-то то там про количество советов было в названии.
M>Конструктор не должен бросать исключений принципиально.
Книжка эта называется Стандарты программирования на C++. 101 Правило и рекомендация.. И речь в ней идет не о конструкторах, а о деструкторах: 51. Деструкторы, функции освобождения ресурсов и обмена не ошибаются.
Для конструктора же бросок исключен — самый естественный способ сообщить о невозможности конструирования объекта. Даже оператор new обязан подчистить за собой выделенную память, если в конструкторе возникло исключение. Это в стандарте прописано.
M>Есть такая книжка хорошая, только не помню как называется, что-то типа "С++ для профессионалов", что-то то там про количество советов было в названии.
M>Конструктор не должен бросать исключений принципиально.
Книжка эта называется Стандарты программирования на C++. 101 Правило и рекомендация.. И речь в ней идет не о конструкторах, а о деструкторах: 51. Деструкторы, функции освобождения ресурсов и обмена не ошибаются.
Для конструктора же бросок исключен — самый естественный способ сообщить о невозможности конструирования объекта. Даже оператор new обязан подчистить за собой выделенную память, если в конструкторе возникло исключение. Это в стандарте прописано.