#cpp #исключения #деструктор
Вычитал у Майерса, то что два исключения в деструкторе - это слишком много. Что он этим хотел сказать? Одно исключение - это не много, а вот два - это уже много? Мне кажется, что уже одно исключение не даст приложению нормально работать?
Ответы
Ответ 1
Вы его неверно прочли :) В деструкторе вообще не должно быть исключений. Потому что представьте себе - где-то в коде сгенерировано исключение, пошла свертка стека, удаление объектов - т.е. вызовы деструкторов. И если при этом какой-то деструктор сгенерирует исключение - что будет? Будет два исключения, причем второе сгенерировано во время обработки первого. Вот что имеется в виду, когда говорится о двух исключениях. На у а дальше... что же делать дальше? Какое из исключений обрабатывать? Продолжать обработку первого, игнорируя второе? Игнорировать первое и обрабатывать второе? В результате в этой ситуации программа просто аварийно завершается...
Комментариев нет:
Отправить комментарий