Как мне использовать `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>
библиотека.