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

Класс invalid_argument

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

Синтаксис

class invalid_argument : public logic_error; // Создание объекта исключения invalid_argument(const string& what_arg); invalid_argument(const char* what_arg);

Пример

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

#include <iostream> #include <stdexcept> using namespace std; void checkNumber(int num) { if (num < 0) { throw invalid_argument("Number cannot be negative"); } cout << "Number is: " << num << endl; } int main() { try { checkNumber(-5); } catch (const invalid_argument& e) { cout << "Caught exception: " << e.what() << endl; } return 0; }

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

"Caught exception: Number cannot be negative"

Пример

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

#include <iostream> #include <stdexcept> #include <string> using namespace std; int stringToInt(const string& str) { if (str.empty() || str.find_first_not_of("0123456789") != string::npos) { throw invalid_argument("Invalid string format for integer conversion"); } return stoi(str); } int main() { try { int res = stringToInt("12345abc"); cout << "Result: " << res << endl; } catch (const invalid_argument& e) { cout << "Error: " << e.what() << endl; } return 0; }

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

"Error: Invalid string format for integer conversion"

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

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