【发布时间】:2011-04-18 21:54:33
【问题描述】:
当使用带有错误对象的 boost::asio::write() 变体时,错误不会被设置,而是会引发异常。也许我理解错了,你以为这个版本会设置错误,而不是抛出异常:
try{
boost::system::error_code error;
size_t iBytesWrit = boost::asio::write(
*a_socket_ptr,boost::asio::buffer(a_response.getdata()),
boost::asio::transfer_all(),
error);
(A)
if(error)print error...
}
catch(std::exception &e){
(B)
log error...
}
如果我通过关闭套接字的客户端导致写入错误,则会引发异常 这里(发生了 B,而不是 A)。 boost::system::error_code 根本没有设置。我错过了什么愚蠢的事情?
这是 tcp 和同步的。
【问题讨论】:
-
你得到的
error_code是什么?
标签: c++ boost-asio