Как мне использовать `std::error_category` и другие вещи, которые есть в заголовке system_error?

В C++ уже есть достаточно стратегий обработки ошибок. У нас есть обработка исключений, коды ошибок и это ERRNO беспорядок. Какую роль играет system_error Заголовок играть здесь? Как я могу использовать функции там? Для меня это выглядит случайным образом. Я использую сайт cppreference в качестве ссылки.

1 ответ

Решение

Вы можете throw а также catch это как нормальное исключение. Это просто часть std::exception иерархия. std::system_error продолжается std::runtime_error который расширяется std::exception

Когда его следует использовать? Обычно он используется для преобразования ошибок ERRNO в стиле C для обработки и обработки с инкапсулированным кодом ошибки внутри объекта. Это широко используется самой стандартной библиотекой, особенно в новых библиотеках, работающих со специфическими для ОС материалами, например, в <thread> библиотека.

Другие вопросы по тегам