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

同步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";
}

如果您不想处理异常,可以使用返回值重载方式:

boost::system::error_code error;
socket.connect(endpoint, error);

if(error)
{
    std::cerr << error.m

猜你喜欢

转载自blog.csdn.net/Knowledgebase/article/details/132860276