Два исключения - это много?

278
03 января 2018, 19:43

Вычитал у Майерса, то что два исключения в деструкторе - это слишком много.
Что он этим хотел сказать? Одно исключение - это не много, а вот два - это уже много?
Мне кажется, что уже одно исключение не даст приложению нормально работать?

Answer 1

Вы его неверно прочли :)

В деструкторе вообще не должно быть исключений. Потому что представьте себе - где-то в коде сгенерировано исключение, пошла свертка стека, удаление объектов - т.е. вызовы деструкторов. И если при этом какой-то деструктор сгенерирует исключение - что будет? Будет два исключения, причем второе сгенерировано во время обработки первого. Вот что имеется в виду, когда говорится о двух исключениях.

На у а дальше... что же делать дальше? Какое из исключений обрабатывать? Продолжать обработку первого, игнорируя второе? Игнорировать первое и обрабатывать второе?

В результате в этой ситуации программа просто аварийно завершается...

READ ALSO
Запуск игрового сервера с++

Запуск игрового сервера с++

Здравствуйте! Я на php написал скрипт управлением игровым сервером

348
Функция int main(void) уже имеет текст реализации. Код ошибки

Функция int main(void) уже имеет текст реализации. Код ошибки

Делаю одну программу для эксперимента и возникла одна ошибкаСделал новый проект и оставил ту же функцию и те же свойства, а ошибка так и осталась,...

1231
Требуется протестировать программу

Требуется протестировать программу

Требуется протестировать программуПрограмма создает шары разных цветов и передвигает их внутри допустимой области с разными скоростями

279
Программа отдаёт разные ответы в разных компиляторах

Программа отдаёт разные ответы в разных компиляторах

В онлайн компиляторе код (http://cppsh/4gnfb) при вводе:

252