Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Ошибка сокета


Автор: Romero 1.6.2005, 13:06
При попытке произвести коннект:

IdTCPClient.Connect; //использую Indy's TCP Server & Client

если сервак не подключен по указанному адресу, то возникает ошибка сокета №10061.

Хочу обработать исключение. Так, чтобы в случае подобной или любой другой ошибки, возникающей при подключении к серверу, выполнялось некое дествие.
Попытка написать так:

Код

try
IdTCPClient.Connect;
except
//то самое действие
end;


не дала результатов - прога все равно вылетает с той же ошибкой!

Что не так? Помогите, пожалуйста!

Автор: _hunter 1.6.2005, 13:30
без отладчика запусти. или в свойсвах дебаггера отключи останов на исключениях

Автор: Romero 1.6.2005, 16:09
Дело в том, что прога вылетает с этим сообщением не только во время компиляции, но и уже откомпиленная.
Даже если бы это решило проблему, это не то, что мне нужно. Я хочу именно ОБРАБАТЫВАТЬ такие ошибки, а не игнорировать...

Автор: z-END 1.6.2005, 16:17
Цитата(Romero @ 1.6.2005, 17:09)
Я хочу именно ОБРАБАТЫВАТЬ такие ошибки, а не игнорировать...

Хочешь- обрабатывай, кто тебе мешает?! except не значит "игнороировать", а значит этот блок будет выполняться при возникновении исключительной ситуации в блоке try
и тут ты уже делай че хочешь, обрабатывай сколько влезет:))
Код

try
IdTCPClient.Connect;
 except
ShowMessage(' Нифига не коннект:(');
end;

скомпилируй такую вещь и запусти ее, только не из дельфей а проводником, при невозможности законнектицца ты увидишь только тест 'Нифига не коннект:('

Автор: _hunter 1.6.2005, 16:47
Цитата
Дело в том, что прога вылетает с этим сообщением не только во время компиляции, но и уже откомпиленная.

странно было бы если бы она вылетала с этим сообщением при компиляции smile

Автор: Romero 1.6.2005, 16:56
Всё, дошло.
Пасиба!

Автор: Гость_Praetorian 10.10.2005, 15:10
Та же ерунда... тока ничего не дошло из выше написанного. Ошибка 10060. Короче говоря вышел таймаут по коннекту. Вообщем суть использования IdTCPClient-а в Пинге определенного Ip-шника. На норм пинг - все ок, в на отсутствие соединения - посылает на #10060. Что делать??? smile ПЛЗ ХЛП!!!

Автор: Stolzen 17.10.2005, 14:15
Попробуй написать отлов ошибок так:

procedure TMainForm.MyExcept(Sender: TObject; Err: Exception);
begin
if Err = EidError then exit;
end;

В OnCreate:
Application.OnException := MyExcept;

И теперь, при ошибке будут появлятся твои сообщения (или не будут вообще)

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