Класс logic_error
Класс logic_error является базовым классом для исключений,
которые возникают из-за ошибок в логике программы. Такие ошибки
теоретически могут быть обнаружены до запуска программы, например,
при нарушении предусловий функций или инвариантов классов.
Класс наследуется от std::exception и содержит конструктор,
принимающий строку с описанием ошибки. В первом параметре мы передаём
сообщение об ошибке, которое затем можно получить с помощью метода
what.
Синтаксис
#include <stdexcept>
std::logic_error(const std::string& what_arg);
std::logic_error(const char* what_arg);
Пример
Давайте создадим исключение logic_error с сообщением
и выведем его описание:
#include <iostream>
#include <stdexcept>
using namespace std;
int main()
{
try
{
throw logic_error("logic error occurred");
}
catch (const logic_error& e)
{
cout << e.what() << endl;
}
return 0;
}
Результат выполнения кода:
"logic error occurred"
Пример
Давайте перехватим исключение logic_error
как базовое исключение exception:
#include <iostream>
#include <stdexcept>
using namespace std;
int main()
{
try
{
throw logic_error("invalid logic");
}
catch (const exception& e)
{
cout << e.what() << endl;
}
return 0;
}
Результат выполнения кода:
"invalid logic"
Смотрите также
-
класс
runtime_error,
который представляет ошибки времени выполнения -
класс
invalid_argument,
который сигнализирует о неверном аргументе -
класс
out_of_range,
который сообщает о выходе за пределы диапазона -
метод
what,
который возвращает описание исключения