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

Класс range_error

Класс range_error наследуется от класса runtime_error и предназначен для генерации исключений, возникающих при выходе результата вычислений за пределы допустимого диапазона значений. Конструктор класса принимает строку с сообщением об ошибке, которую впоследствии можно получить с помощью метода what. Давайте рассмотрим особенности его работы на примерах.

Синтаксис

class range_error : public runtime_error;

Пример

Давайте создадим исключение range_error и перехватим его с помощью блока try...catch:

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

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

"Caught range_error: Value out of range"

Пример

Давайте продемонстрируем, как range_error может быть перехвачен как базовый класс runtime_error:

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

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

"Caught as runtime_error: Result is too large"

Пример

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

#include <iostream> #include <stdexcept> using namespace std; int main() { try { int min_val = 0; int max_val = 100; int res = 150; if (res < min_val || res > max_val) { throw range_error("Result out of valid range"); } cout << res << endl; } catch (const range_error& e) { cout << "Error: " << e.what() << endl; } return 0; }

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

"Error: Result out of valid range"

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

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