Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> EIdSocketError Indy9 Delphi7, Ошибка соединения 
:(
    Опции темы
Мозгоносец
Дата 28.7.2009, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 11.7.2009

Репутация: нет
Всего: нет



По тику таймера пытаюсь присоединится к серверу и получить от него информацию. Если сервер в наличии - все нормально. Если сервера нет - генерация исключительной сиутации EIdSocketError "Socket Error #10057. Socket is not connected". Все просто и логично. Но попытка обработать исключительную ситуацию к успеху не приводит. Делаю так:

//Delphi7 Indy 9

Код


//  Client: TIdTCPClient;
.......
    if Not(Client.Connected) then
    try
      Client.Connect;
    except
      on EIdSocketError do Label.Caption := 'Not connected';
    end;
.......


Где я не прав?
PM MAIL   Вверх
Romikgy
Дата 28.7.2009, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(Мозгоносец @  28.7.2009,  14:47 Найти цитируемый пост)
Но попытка обработать исключительную ситуацию к успеху не приводит.

а без дельфи запустить ехе выводится сообщение о исключении ?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
mr_smit
Дата 28.7.2009, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 27.2.2008
Где: Самара

Репутация: 3
Всего: 4



Не плохо бы вместо Label написать Label1 (например). И попробуй запустить без Delphi (как правильно заметил Romikgy). Delphi сама исключения обрабатывает и показывает их тебе даже при условии Try и т.д. А вот когда сам exe запустишь, вот тогда и будут работать исключения. Хотя может у тебя в остальном коде где проблема...

Это сообщение отредактировал(а) mr_smit - 28.7.2009, 20:24
PM MAIL   Вверх
Мозгоносец
Дата 29.7.2009, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 11.7.2009

Репутация: нет
Всего: нет



 Не, ребяты.  Уверяю вас, дело не в Label. В том-то и проблема, что не получается именно перехватить исключение. Или обработать его, кому как нравится. Такое ощущение, что до кода
   except
      on EIdSocketError do Label.Caption := 'Not connected';
    end;
 дело просто не доходит. Программа останавливается на  Client.Connect и сообщает об исключительной ситуации, хотя вроде бы при возникновении исключения должен выполняться блок except...end;
 Что касается перехвата исключения средой, то для Инди я эту опцию отключил. И экзешник, запущенный вне среды, также генерит сообщения об исключении.
PM MAIL   Вверх
Мозгоносец
Дата 29.7.2009, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 11.7.2009

Репутация: нет
Всего: нет



 А казалось бы, что может быть проще...

PM MAIL   Вверх
dumb
Дата 29.7.2009, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 5
Всего: 158



Мозгоносец, ты читать умеешь?

Цитата(Romikgy @  28.7.2009,  20:42 Найти цитируемый пост)
а без дельфи запустить ехе выводится сообщение о исключении ? 

Цитата(mr_smit @  28.7.2009,  21:21 Найти цитируемый пост)
И попробуй запустить без Delphi (как правильно заметил Romikgy). Delphi сама исключения обрабатывает и показывает их тебе даже при условии Try и т.д. А вот когда сам exe запустишь, вот тогда и будут работать исключения.


PM MAIL   Вверх
mr_smit
Дата 29.7.2009, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 27.2.2008
Где: Самара

Репутация: 3
Всего: 4



Цитата(Мозгоносец @ 29.7.2009,  07:53)
И экзешник, запущенный вне среды, также генерит сообщения об исключении.


Хоть бы исходник что ль выложил...

Это сообщение отредактировал(а) mr_smit - 29.7.2009, 20:22
PM MAIL   Вверх
Мозгоносец
Дата 30.7.2009, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 11.7.2009

Репутация: нет
Всего: нет



Установка Indy10 проблему сняла.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0886 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.