Системная ошибка в C++
Код ошибки и дополнительное сообщение несет исключение std::system_error.
Его бросают, когда код ошибки уже собран,
но дальнейшая работа невозможна.
В catch удобно читать
code.message - тот же текст,
что у значения error_code.
Соберем бросок и перехват в main:
#include <system_error>
#include <iostream>
int main() {
try {
throw std::system_error(
std::make_error_code(std::errc::permission_denied),
"access blocked");
} catch (const std::system_error& err) {
std::cout << err.code().message() << "\n";
}
return 0;
}
Бросьте std::system_error с кодом
std::errc::no_such_file_or_directory
и строкой "missing". Перехватите
и выведите code.message.