Класс underflow_error
Класс underflow_error наследуется от класса runtime_error и используется для генерации исключений, связанных с переполнением снизу. Такая ситуация возникает, когда в результате вычислений или преобразований значение становится меньше минимально возможного значения для данного типа или диапазона. Класс не имеет собственных методов - вся функциональность наследуется от std::exception и std::runtime_error.
Для создания объекта исключения используется конструктор, который принимает строку с описанием ошибки. Получить это описание можно с помощью метода what, унаследованного от базового класса.
Синтаксис
#include <stdexcept>
class underflow_error : public runtime_error
{
public:
explicit underflow_error(const string& what_arg);
explicit underflow_error(const char* what_arg);
};
Пример
Давайте создадим исключение underflow_error и выведем его описание через метод what:
#include <iostream>
#include <stdexcept>
using namespace std;
int main()
{
try
{
throw underflow_error("Value is below the minimum allowed");
}
catch (const underflow_error& e)
{
cout << e.what() << endl;
}
return 0;
}
Результат выполнения кода:
"Value is below the minimum allowed"
Пример
Давайте продемонстрируем ситуацию, когда значение выходит за нижнюю границу диапазона, и сгенерируем соответствующее исключение:
#include <iostream>
#include <stdexcept>
using namespace std;
int main()
{
int value = -5;
int minValue = 0;
try
{
if (value < minValue)
{
throw underflow_error("value is less than minValue");
}
cout << value << endl;
}
catch (const underflow_error& e)
{
cout << "Caught: " << e.what() << endl;
}
return 0;
}
Результат выполнения кода:
"Caught: value is less than minValue"
Смотрите также
-
класс
runtime_error,
который является базовым для underflow_error -
класс
overflow_error,
который сигнализирует о переполнении сверху -
метод
what,
который возвращает описание исключения -
класс
exception,
который является базовым для всех исключений