РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
588 of 815 menu

Класс bad_optional_access

Класс bad_optional_access наследуется от std::exception и используется для сигнализации об ошибке при попытке получить доступ к значению объекта std::optional, который не содержит значения. Данное исключение выбрасывается методами value и оператором разыменования operator*, когда объект находится в пустом состоянии. Класс не имеет собственных параметров и методов, кроме унаследованного от базового класса метода what, который возвращает пояснительную строку.

Синтаксис

#include <optional> class bad_optional_access : public exception

Пример

Давайте создадим пустой объект std::optional и попробуем получить доступ к его значению с помощью метода value, чтобы вызвать исключение:

#include <iostream> #include <optional> using namespace std; int main() { optional<int> opt; try { cout << opt.value() << endl; } catch (const bad_optional_access& e) { cout << "Caught: " << e.what() << endl; } return 0; }

Результат выполнения кода:

"Caught: bad optional access"

Пример

Давайте проверим, что объект содержит значение, перед обращением к нему, чтобы избежать исключения:

#include <iostream> #include <optional> using namespace std; int main() { optional<int> opt = 12345; if (opt.has_value()) { cout << opt.value() << endl; } else { cout << "No value" << endl; } return 0; }

Результат выполнения кода:

12345

Смотрите также

  • класс exception,
    который является базовым классом для всех исключений
  • метод what,
    который возвращает описание исключения
  • оператор throw,
    который выбрасывает исключение
  • конструкция try,
    которая позволяет обрабатывать исключения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить