【问题标题】:Boost error codes human-readable descriptionBoost错误代码人类可读的描述
【发布时间】:2012-06-01 01:48:56
【问题描述】:

我在 Boost Asio 程序中发现错误,例如

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

但该错误不是人类可读的(例如,在没有证书的情况下连接到 SSL 服务器会出现错误 asio.ssl:335544539)。有没有更好的方法来显示错误?

【问题讨论】:

  • 什么类型的错误?填充错误字段的函数是什么?
  • 请注意,如果您打算向用户显示此类错误,您可能应该以可以本地化的方式进行。
  • @JonCage:我不同意“重复”,这些问题询问如何解决问题或提供更多日志,而不是如何获得人性化的消息。

标签: c++ boost error-handling boost-asio


【解决方案1】:

如果您可能使用boost::system::error_code,您可以致电:

error.message()

获得更人性化的信息。

使用operator&lt;&lt; 转换为:

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

Here您可以查看error_code中可用成员的详细概述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-16
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    相关资源
    最近更新 更多