Каждый элемент данных внутри вашего объекта должен очистить свой беспорядок.
Если конструктор генерирует исключение, деструктор объекта не запустить. Если ваш объект уже сделал что-то, что должно быть отменить (например, выделить некоторую память, открыть файл или заблокировать семафор), этот "материал, который нужно отменить" должен быть запомненный элементом данных внутри объекта.
Базовые деструкторы гарантированно будут вызываться, но не деструктор самого объекта.
Ответ 4
Да. По завершении построения базового или вспомогательного объекта этот под-объект будет надлежащим образом уничтожен, если будет создано исключение.
Ответ 5
Собственно, бросание исключения в конструктор является одним из способов ОБОРОТНОГО ОБЕСПЕЧЕНИЯ ОБНАРУЖЕНИЯ СБОРА ОБЪЕКТОВ, если он правильно обрабатывается вызывающим, поскольку нет никакого возвращаемого значения конструктора.