Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Как мне обработать исключение?


Автор: RDC 15.6.2008, 07:00
Использую компоненты Indy для передачи данных по сети. Если клиент (IdTCPClient) не может достучаться до сервера (IdTCPServer) то выводиться сообщение:
Socket Error # 10061
Connection refused.
Как мне вместо этого сообщения вывести что то типа "Сервер не готов!"?

Автор: Rrader 15.6.2008, 07:26
Код

    try
    {
        IdTCPClient1->Connect();
    }
    catch(EIdSocketError &E)
    {
        ShowMessage("Сервер не готов!");
    }

Автор: RDC 15.6.2008, 07:37
Вот таким кодом
Код

try {
                frmClient->IdTCPClient1->Connect();
        } catch(EIdSocketError &E) {
                MessageBoxA(NULL,"Сервер не отвечает.","Ошибка",NULL);
        }
        frmClient->IdTCPClient1->Connect();
        try {
                UserList=frmClient->IdTCPClient1->ReadLn();
        } __finally {
                frmClient->IdTCPClient1->Disconnect();
        }


Не получается. Если сервак не отвечает то сообщение выводиться, но если он включен то выводиться сообщение
Already connected. И нифига не подключается. Где у меня ошибка?

Автор: Rrader 15.6.2008, 07:43
Ну еще бы. Ты же два раза подрубаешься, если не будет ошибки smile 

Убери второй вызов frmClient->IdTCPClient1->Connect();

Автор: RDC 15.6.2008, 09:07
Твоя правда! Спасибо всё заработало.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)