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

Класс runtime_error

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

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

Синтаксис

#include <stdexcept> runtime_error(const string& what_arg); runtime_error(const char* what_arg);

Пример

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

#include <iostream> #include <stdexcept> using namespace std; int main() { try { throw runtime_error("runtime error occurred"); } catch (const runtime_error& err) { cout << err.what() << endl; } return 0; }

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

"runtime error occurred"

Пример

Давайте выбросим исключение runtime_error внутри функции и обработаем его в вызывающем коде:

#include <iostream> #include <stdexcept> using namespace std; void check(int value) { if (value < 0) { throw runtime_error("negative value"); } } int main() { try { check(-1); } catch (const runtime_error& err) { cout << err.what() << endl; } return 0; }

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

"negative value"

Пример

Давайте перехватим исключение runtime_error через базовый класс exception:

#include <iostream> #include <stdexcept> using namespace std; int main() { try { throw runtime_error("something went wrong"); } catch (const exception& err) { cout << err.what() << endl; } return 0; }

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

"something went wrong"

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

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