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

Класс domain_error

Класс domain_error является одним из стандартных классов исключений в C++. Он наследуется от класса logic_error и используется для сигнализации о том, что математическая функция или алгоритм получили аргумент, который находится вне области определения (домена) этой функции. Например, попытка вычислить квадратный корень из отрицательного числа или логарифм от нуля может привести к возникновению исключения domain_error.

Этот класс не имеет собственных методов, кроме унаследованных от logic_error и exception. Основное его назначение - быть перехваченным в блоке catch для обработки ошибок, связанных с недопустимыми значениями аргументов.

Синтаксис

#include <stdexcept> class domain_error : public logic_error;

Пример

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

#include <iostream> #include <stdexcept> #include <cmath> using namespace std; double safe_sqrt(double x) { if (x < 0) { throw domain_error("Negative argument for sqrt"); } return sqrt(x); } int main() { try { cout << safe_sqrt(-4) << endl; } catch (const domain_error& e) { cout << "Caught: " << e.what() << endl; } return 0; }

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

"Caught: Negative argument for sqrt"

Пример

Давайте перехватим исключение domain_error как базовый класс logic_error, чтобы показать полиморфизм исключений:

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

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

"Logic error: Value out of domain"

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

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