![]() |
|
|
![]()
|
|
| RoZher |
|
|||
|
Unregistered |
Есть необходимость с некоторой переодичностью опрашивать сервер по TCP/IP.
Для этого я использую таймер по которому проверяю активность сокета (используется TClientSocket), и если не активен то пробую его открыть внутри try-catch. Далее если он активен то посылаю серверу запрос, иначе ставлю признак ошибки и завершаю обработку таймера. По ходу программирования я сперва начал отлаживать ветку с ошибкой открытия сокета и столкнулся со следующей проблемой. Первые два-три прохода все работает нормально (делаю Open(), проверяю что сокет не активен, ставлю признак ошибки, завершаю обработку таймера). Затем на 3-й или 4-й проход после выхода из обработки таймера случается исключение ESocketError с сообщеинем 'Asynchronous socket error <код ошибки>'. Если у сокета поставить обработку события OnError, то перед появлением сообщения программа попадает на нее. В связи с этим вопрос, почему искючение не ловится в try-catch в котором я пробую открыть сокет, и как можно обойти выдачу этого сообщения? |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
оно ловится. просто IDE перехватывает все исключению
чтобы на них не останавливаться убери галку Tools->Debugger Options...->Language Exceptions->Stop on Dephi Exceptions -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| RoZher |
|
|||
|
Unregistered |
Ничего это не дает. Мой try-catch его не ловит. Просто исполнение перестает останавливаться.
А на экран бесконечно валится сообщение об ошибке. И еще, пока опция была включена исполнение приостанавливалось в конце основного try в WinMain (кстати в его catch управление не попадает |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
значит ошибка не на открытии...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Quadruple |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 4.11.2004 Репутация: нет Всего: нет |
RoZher
В функции OnError надо изменять переменную ErrorCode на 0, тогда ниче выскакивать небудет. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Quadruple
Спасибо за совет, теперь все ОК. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |