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

Класс bad_any_cast

Класс bad_any_cast представляет собой исключение, которое выбрасывается при неудачной попытке извлечь значение из объекта any с помощью функции any_cast. Это исключение наследуется от класса std::bad_cast, который, в свою очередь, наследуется от std::exception. Класс не имеет собственных параметров и методов, кроме унаследованного метода what, который возвращает строку с описанием ошибки.

Синтаксис

#include <any> class bad_any_cast : public std::bad_cast;

Пример

Давайте попробуем извлечь из объекта any значение типа int, хотя внутри хранится строка. Это приведет к выбросу исключения bad_any_cast:

#include <iostream> #include <any> #include <string> using namespace std; int main() { any value = string("abcde"); try { int res = any_cast<int>(value); cout << res << endl; } catch (const bad_any_cast& e) { cout << "Error: " << e.what() << endl; } return 0; }

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

"Error: bad any_cast"

Пример

Давайте выполним корректное извлечение значения из объекта any. В этом случае исключение не будет выброшено:

#include <iostream> #include <any> using namespace std; int main() { any value = 12345; try { int res = any_cast<int>(value); cout << res << endl; } catch (const bad_any_cast& e) { cout << "Error: " << e.what() << endl; } return 0; }

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

12345

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

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