Выбор ответа Middle Исключения спрашивают часто обновлено
Строгая гарантия исключений
Вопрос
Что означает строгая гарантия безопасности исключений?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: При исключении состояние программы такое же, как до вызова. Строгая гарантия это транзакционность: либо операция выполнилась полностью, либо ничего не изменилось.
Варианты ответа
- Операция никогда не бросает исключений и помечена
noexcept - После исключения объект корректен, но его состояние могло измениться
- При исключении состояние программы такое же, как до вызоваправильный ответ
- Исключение обязательно будет поймано обработчиком в той же функции
Разбор
Строгая гарантия это транзакционность: либо операция выполнилась полностью, либо ничего не изменилось. Обычно её получают, делая работу на копии и затем обмениваясь noexcept.
- «Никогда не бросает» это гарантия nothrow.
- «Корректно, но изменено» это базовая гарантия.
- Гарантии описывают состояние объектов, а не наличие обработчика.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.