C++ 是否有必要使用C+检查send in 0MQ的返回值+;?

C++ 是否有必要使用C+检查send in 0MQ的返回值+;?,c++,zeromq,C++,Zeromq,send函数examples返回bool以指示消息是否成功发送,但我从未见过任何检查此返回值的示例代码 根据C,错误转换为异常: 由下面的O.MQC库函数报告的所有错误通过C++语言绑定自动转换为异常。zmq::error\u t类派生自std::exception类,并使用zmq\u strerror()函数将错误代码转换为人类可读的字符串 是否需要检查send的返回值?是否存在发送函数返回false但不引发异常的情况?来自: 因此答案是存在的-如果将错误设置为EAGAIN,send将返回fa

send函数examples返回bool以指示消息是否成功发送,但我从未见过任何检查此返回值的示例代码

根据C,错误转换为异常:

由下面的O.MQC库函数报告的所有错误通过C++语言绑定自动转换为异常。zmq::error\u t类派生自std::exception类,并使用zmq\u strerror()函数将错误代码转换为人类可读的字符串

是否需要检查send的返回值?是否存在发送函数返回false但不引发异常的情况?

来自:

因此答案是存在的-如果将错误设置为EAGAIN,send将返回false。要了解什么时候会发生这种情况,请阅读zmq_socket和zmq_setsockopt的文档

如果您正在使用的套接字可能会引发EAGAIN,并且您希望处理此情况,则应检查返回值。例如,您可以通过将消息排队并稍后重试来处理它

inline bool send (message_t &msg_, int flags_ = 0)
{
    int rc = zmq_send (ptr, &msg_, flags_);
    if (rc == 0)
        return true;
    if (rc == -1 && zmq_errno () == EAGAIN)
        return false;
    throw error_t ();
}