Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как заглушить вывод ошибки на экран [D6]


JohnS ©   (2005-01-11 10:53:00) 

Hello All
Не подскажите можно ли поставить галочку которая блокирует вывод на экран сообщение об ошибках, которые происходят к тому же в СТОРОННИХ компонентах .


Семен Сорокин   (2005-01-11 14:18:00) [1]


> JohnS   (11.01.05 14:16) [12]

см. [7] и читаем про Application.OnException


JohnS   (2005-01-11 14:16:00) [2]


> ты навреное не понял, в исходники indy лезть не надо, это
> тебе в твоей процедуре/ф-ии (или процедурах/ф-ях) при работе
> с этим компонетом надо использовать предложенную конструкцию,
> как пример:
> try
>  IdFTP.put()
> except
>  on E: EIdConnClosedGracefully do  
>   MessageDlg('Нет соединения', mtWarning [mbOk], 0)  
> end


А Блин , это я не так обьяснил. Просто ошибка возникает при Успешной отработке команды , я просто каждый раз закрываю Мессаджбокс с ошибкой ('Connection Closed Gracefully') и все работает !


Семен Сорокин   (2005-01-11 14:11:00) [3]


> JohnS   (11.01.05 14:01) [10]
> Отладчик что прикольно ничего не говорит , висит на IdFTP.put()
> пока CTRL-F2 не нажмеш
>
> procedure TIdIOHandler.RaiseConnClosedGracefully;
> begin
>
> //ТО что было
> // raise EIdConnClosedGracefully.Create(RSConnectionClosedGracefully);
>
> //То что я добавил
> try
> // работа с компонентом
>
> except
> on E: EIdConnClosedGracefully do
>  // попытка прочитать/записать при закрытом соединении
> end
>
> end;//proc


ты навреное не понял, в исходники indy лезть не надо, это тебе в твоей процедуре/ф-ии (или процедурах/ф-ях) при работе с этим компонетом надо использовать предложенную конструкцию, как пример:
try
 IdFTP.put()
except
 on E: EIdConnClosedGracefully do  
  MessageDlg('Нет соединения', mtWarning [mbOk], 0)  
end


JohnS   (2005-01-11 14:01:00) [4]

Отладчик что прикольно ничего не говорит , висит на IdFTP.put()
пока CTRL-F2 не нажмеш

procedure TIdIOHandler.RaiseConnClosedGracefully;
begin

//ТО что было
// raise EIdConnClosedGracefully.Create(RSConnectionClosedGracefully);

//То что я добавил
try
// работа с компонентом

except
on E: EIdConnClosedGracefully do
 // попытка прочитать/записать при закрытом соединении
end

end;//proc


Семен Сорокин   (2005-01-11 13:09:00) [5]


> Семен Сорокин ©
>
> Так все виснет :-(((((((((((((((((((

приведи код, раньше сообщение не нравилось, а теперь всё виснет, что отладчик говорит?


JohnS   (2005-01-11 13:05:00) [6]

Семен Сорокин ©

Так все виснет :-(((((((((((((((((((

try
// работа с компонентом

except
on E: EIdConnClosedGracefully do
  // попытка прочитать/записать при закрытом соединении
end


Семен Сорокин   (2005-01-11 12:48:00) [7]

или в OnException:

procedure TMainForm.AppException(Sender: TObject; E: Exception);
begin
if Assigned(E) and (E is EIdConnClosedGracefully) then
 // твои действия
else
 Application.ShowException(Exception(ExceptObject))
end;


Семен Сорокин   (2005-01-11 12:42:00) [8]

>JohnS   (11.01.05 12:29) [5]
тебе просто нужно добавить обработчик в except:

try
 // работа с компонентом

except
 on E: EIdConnClosedGracefully do
   // попытка прочитать/записать при закрытом соединении
end


JohnS   (2005-01-11 12:29:00) [9]

Кстати

try
...
exept
...
end


Не канает , просто компонент при этом не работает ( я имею ввиду INDY)

Вот пример где разработчики так и советуют , но поставив

try
 raise EIdConnClosedGracefully.Create RSConnectionClosedGracefully);
except
end;


Я просто наблюдаю подвис компонента :-((((((((

procedure TIdIOHandler.RaiseConnClosedGracefully;
begin
 (* ************************************************************* //
 ------ If you receive an exception here, please read. ----------

 
 If this is a CLIENT
 -------------------
 The server side of this connection has disconnected normaly but your client has attempted
 to read or write to the connection. You should trap this error using a try..except.
 Please see the help file for possible further information.

 // ************************************************************* *)

    raise EIdConnClosedGracefully.Create(RSConnectionClosedGracefully);
end;


TUser   (2005-01-11 11:04:00) [10]

Кстати, есть еще JclDebug.pas. Люди хвалят, но сам я не пробовал пока. Возможно, это то, что тебе надо ...


Семен Сорокин   (2005-01-11 10:58:00) [11]

не использовать такие сторонние компоненты.


Александр Иванов   (2005-01-11 10:55:00) [12]

try
...
exept
...
end


TUser   (2005-01-11 10:55:00) [13]

try except на все обращения к их методам/свойствам. Галочка - stop on delphi exceptions
+ application.OnException


Наверх

Титульная страница Поиск, карта сайта Написать письмо