Пространства имён
Варианты
Действия

std::system_category

Материал из cppreference.com
 
 
Библиотека диагностики
Обработка исключений
Сбои обработки исключений
(до C++17*)
(до C++17*)
(C++11)(до C++17*)    
(до C++17*)
Коды ошибок
Коды ошибок
Категории исключений
(ТС TM)
Поддержка системных ошибок
(C++11)
(C++11)
Утверждения
Трассировка стека
 
<tbody> </tbody>
Определено в заголовочном файле <system_error>
const std::error_category& system_category() noexcept;
(начиная с C++11)

Получает ссылку на статический объект категории ошибок для ошибок, о которых сообщает операционная система. Объекту необходимо переопределить виртуальную функцию std::error_category::name(), чтобы возвращать указатель на строку "system". Также необходимо переопределить виртуальную функцию std::error_category::default_error_condition() для сопоставления кодов ошибок, соответствующих значениям POSIX errno, с std::generic_category.

Параметры

(нет)

Возвращаемое значение

Ссылка на статический объект неопределённого типа времени выполнения, полученный из std::error_category.

Пример

#include <iomanip>
#include <iostream>
#include <string>
#include <system_error>

int main()
{
    for (int const code : {EDOM, 10001})
    {
        const std::error_condition econd =
            std::system_category().default_error_condition(code);

        std::cout << "Категория: " << econd.category().name() << '\n'
                  << "Значение:  " << econd.value() << '\n'
                  << "Сообщение: " << econd.message() << "\n\n";
    }
}

Возможный вывод:

Категория: generic
Значение:  33
Сообщение: Numerical argument out of domain

Категория: system
Значение:  10001
Сообщение: Unknown error 10001

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

определяет общую категорию ошибок
(функция) [править]
(C++11)
перечисление std::error_condition, в котором перечислены все стандартные макроконстанты <cerrno>
(класс) [править]