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

Класс out_of_range

Класс out_of_range наследуется от класса logic_error и используется для сигнализации о том, что индекс или позиция выходят за допустимые границы контейнера или строки. Это исключение обычно выбрасывается методами, такими как at у вектора или строки, когда переданный индекс больше или равен размеру контейнера. Класс не имеет собственных параметров, но предоставляет конструктор, принимающий строку с описанием ошибки.

Синтаксис

#include <stdexcept> class out_of_range : public logic_error { public: explicit out_of_range(const std::string& what_arg); explicit out_of_range(const char* what_arg); };

Пример

Давайте попробуем обратиться к элементу вектора по индексу, который превышает его размер, используя метод at:

#include <iostream> #include <vector> #include <stdexcept> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; try { cout << vec.at(10) << endl; } catch (const out_of_range& e) { cout << "Error: " << e.what() << endl; } return 0; }

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

Error: vector::_M_range_check: __n (which is 10) >= this->size() (which is 5)

Пример

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

#include <iostream> #include <stdexcept> using namespace std; int main() { try { throw out_of_range("Index is out of bounds"); } catch (const out_of_range& e) { cout << "Caught: " << e.what() << endl; } return 0; }

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

"Caught: Index is out of bounds"

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

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