同步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