Класс 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,
который генерирует исключение