На данный момент я использую Boost Asio для подключения к серверу через TCP.
Я использую условный регистр, чтобы решить, должно ли приложение запускаться или нет соединение с сервером; он отлично работает, но проблема в том, что если я попытаюсь подключиться к серверу, когда сервер не работает, произойдет сбой приложения с этой ошибкой:
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >'
what(): Connection refused
Это код, который я использую:
case CONNECTION:
// Connect to the server
using boost::asio::ip::tcp;
boost::asio::io_service io_service;
tcp::resolver resolver(io_service);
tcp::resolver::query query(tcp::v4(), server, boost::lexical_cast<string>(porta));
tcp::resolver::iterator iterator = resolver.resolve(query);
tcp::socket s(io_service);
s.connect(*iterator);
Я бы хотел сохранить живое мое приложение с его нормальным поведением и выводит только предупреждение о сбое соединения.
Как я могу обработать это исключение?