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

Класс length_error

Класс length_error наследуется от класса logic_error и используется для генерации исключений, когда программа пытается создать объект, длина которого превышает максимально допустимый размер. Чаще всего это исключение возникает при работе с контейнерами, например, при вызове метода resize у вектора или строки, если запрошенный размер превышает max_size.

Синтаксис

#include <stdexcept> class length_error : public logic_error;

Пример

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

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

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

"Error: vector::_M_default_append"

Пример

Давайте явно выбросим исключение length_error с собственным сообщением и обработаем его:

#include <iostream> #include <stdexcept> using namespace std; int main() { try { throw length_error("Requested length is too large"); } catch (const length_error& e) { cout << "Caught: " << e.what() << endl; } return 0; }

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

"Caught: Requested length is too large"

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

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