处理提升端点 listen/run 错误
Handle boost endpoint listen/run error
如果我设置了wrong/busy端口,我就不会收到端点错误。我使用从 boost 端点公开继承的 websocket 服务器。我想在这里处理错误:
try {
m_server.reset(); // leads to some errors/warnings in console, but it works :)
m_server.listen(777777777);
m_server.start_accept();
m_thread = std::thread(&Server::run, &m_server);
return true;
}
catch (...) {
m_running = false;
return false;
}
我尝试了 m_server.is_listening()、m_server.stopped() 等,但它们对两个 norm/bad 端口号显示相同的结果。我该如何处理错误?
UPD1:我使用 websocketpp 库
尝试捕获 websocketpp::exception
类型的异常并对它们调用 code()
方法。这应该 return 一个特定的错误代码,您可以检查它是 "wrong/busy port" 还是其他错误。
或者,如果您想避免异常,大多数方法(例如 listen)将接受第二个错误代码参数,并用异常中设置的错误代码填充该参数。
如果我设置了wrong/busy端口,我就不会收到端点错误。我使用从 boost 端点公开继承的 websocket 服务器。我想在这里处理错误:
try {
m_server.reset(); // leads to some errors/warnings in console, but it works :)
m_server.listen(777777777);
m_server.start_accept();
m_thread = std::thread(&Server::run, &m_server);
return true;
}
catch (...) {
m_running = false;
return false;
}
我尝试了 m_server.is_listening()、m_server.stopped() 等,但它们对两个 norm/bad 端口号显示相同的结果。我该如何处理错误?
UPD1:我使用 websocketpp 库
尝试捕获 websocketpp::exception
类型的异常并对它们调用 code()
方法。这应该 return 一个特定的错误代码,您可以检查它是 "wrong/busy port" 还是其他错误。
或者,如果您想避免异常,大多数方法(例如 listen)将接受第二个错误代码参数,并用异常中设置的错误代码填充该参数。