6、boost asio 教程---错误处理

本文介绍了Boost.Asio库在处理错误时的两种方式:同步I/O函数通过异常或返回值抛出`boost::system::system_error`,而异步I/O函数通过将`error_code`传递给完成处理程序。详细讨论了如何从`error_code`获取错误信息,以及在面对文件末尾错误时的处理策略。
摘要由CSDN通过智能技术生成

同步I/O函数
Boost.Asio中的每个同步I/O函数都有两种处理错误的重载方式:第一种会抛出异常,第二种则通过引用返回错误(返回值方法)。

当Boost.Asio函数抛出异常时,它会抛出继承自`std::runtime_error`异常类的`boost::system::system_error`实例。

要通过引用返回错误,会使用`boost::system::error_code`的实例。 

异常处理方式:

try
{
    socket.connect(endpoint);
}
catch(boost::system::system_error const& e)
{
    std::cerr << e.what() << "\n";
}

您可以通过调用`code()`成员函数从`system_error`中检索`error_code`:

catch(boost::system::system_error const& e)
{
    boost::system::error_code error = e.code();
    std::cerr << error.message() << "\n";
}<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knowledgebase

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值