Вопрос по error-handling, boost, boost-asio, c++ – Увеличить коды ошибок удобочитаемого описания

16

Я ловлю ошибки в программе Boost Asio, например

if (!error)
{
    //do stuff
}
else
{
    std::cout << "Error : " << error << std::endl;
    //handle error
}

Но эта ошибка не воспринимается человеком (например, при подключении к серверу SSL без сертификата выдается ошибка asio.ssl: 335544539). Есть ли лучший способ, как отобразить ошибку?

Попробуйте это также:stackoverflow.com/questions/2448715/… Jon Cage
Какой тип ошибки? Какая функция заполняет поле ошибки? Jon Cage
Обратите внимание, что если вы намереваетесь отображать такие ошибки для своих пользователей, вам, вероятно, следует делать это так, чтобы их можно было локализовать. ereOn
@JonCage: я не согласен по поводу «дубликата», эти вопросы касались того, как обойти проблему или предоставить больше журналов, но не как получить сообщения, удобные для человека. Matthieu M.
возможный дубликатHow to decipher a boost asio ssl error code? Jon Cage

Ваш Ответ

1   ответ
29

Если вы, вероятно, используетеboost::system::error_code ты можешь позвонить:

error.message()

чтобы получить более дружественное для человека сообщение.

С помощьюoperator<< переводится на:

os << ec.category().name() << ':' << ec.value()

Вот Вы можете проверить подробный обзор доступных членов вerror_code.

Похожие вопросы