Как правильно кинуть исключение в конструкторе класса?
Есть некий класс, принимающий параметр типа double, необходимо проверить знак, если меньше нуля, то кинуть исключение. Но я начал читать и узнал про некий зомби-режим объекта, в котором произошел вызов данного exception.
Разъясните тонкости пожалуйста)
Vadim Shorin, там пишется, что вы можете использовать исключения для уведомления об ошибке, либо, что хуже, использовать некий флаг и метод для получения этого флага, который будет сигнализировать об ошибке в случае если у вас нет возможности использовать исключения.
Но я начал читать и узнал про некий эомби-режим объекта, в котором произошел вызов данного exception.
Не владею такой терминологией. Подробную цитату или ссылку на статью.
Вероятно там будет о том, что выбрасывать исключение из конструктора можно, но осторожно. В основном все проблемы оттого, что если конструктор выбросил исключение, объект считается недособранным, и деструктор НЕ будет вызываться. Т.е. перед тем как бросить исключение в к-ре вы должны САМИ подчистить всё, что успели насоздавать: https://isocpp.org/wiki/faq/exceptions#selfcleanin...