Страницы

Поиск по вопросам

вторник, 21 мая 2019 г.

С++ аварийный выход из конструктора

Можно ли во время создания объекта, при сбое в конструкторе завершить его без создания объекта и оповестить об этом программу?
serialPort::serialPort(LPSTR serialName) { HANDLE serialDesc;
// COM openning serialDesc = CreateFile(serialName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); if (serialDesc == INVALID_HANDLE_VALUE) { // сделать что-то, что бы объект не создавался и оповестить программу } }
Мне в голову приходят только передача указателя на внешнюю структуру с последующей проверкой, или содержать дополнительную переменную в классе, которую так же придется проверять извне. Еще прочитал про try-throw-catch, но не могу найти явную информацию как он работает в конструкторе.


Ответ

Вообще-то генерация исключения в конструкторе и означает, что объект не создан...
Само собой, все действия по очистке уже сделанного в конструкторе вы должны выполнить самостоятельно.

Комментариев нет:

Отправить комментарий