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

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

try finally для IdFTP [D6, Win2k]


Pavelkq ©   (2005-05-03 13:21:00) 

Пишу мульку для скачивания файлов с ФТП. Когда конект хороший прога пашет, как зверь, но если какие-то проблемы с коннектом, то и прога вылетает по ошибке. Раньше не работал с tryи finally. А тут решил включить, т.к. у IdFTP не нашел никаких обработки ошибок. Но чего-то не работает.
procedure TForm1.Button1Click(Sender: TObject);
var RemoteTSL, LocalTSL: TStringList;
   Set1,Set2: integer;
   MyPath, RWord,LWord: string;
   Good: Boolean;
begin
 If MyPath='' then MyPath:=GetCurrentDir;
 RemoteTSL:=TStringList.Create;
 LocalTSL:=TStringList.Create;
 Good:=False;

 While not(Good) do
 begin
   Memo1.Lines.add('Соединяемся...');
   try
     IdFTP1.Connect(True);
     IdFTP1.ChangeDir('updates3000');
     Memo1.Lines.Add('Соединились');
     Memo1.Lines.Add('Ждем список файлов');
     IdFTP1.List(RemoteTSL, '*.rar', False);
   finally
     if RemoteTSL.Count=0 then Memo1.Lines.Add('Ошибка соединения')
     else Good:=True;
   end;
 end;
...
end;

 А потом надо будет повторить этот же агалог кода для самого скачивания...


Pavelkq   (2005-05-03 14:23:00) [1]

Спасибо! Небольшие добавки с переменной Goodи все сработало, как надо, т.е. долбится до потери пульса.


Digitman   (2005-05-03 13:56:00) [2]

try
    IdFTP1.Connect(True);
    IdFTP1.List(RemoteTSL, '*.rar', False);
  except
   on e:exception do
    Showmessage('Вот такая вот беда приключилась:'#10 + e.classname + ' ' + e.message);
  end;


Pavelkq   (2005-05-03 13:44:00) [3]

Ну, чайник я, чайник. Подскажите, если не сложно, как это правильно сделать?


Digitman   (2005-05-03 13:39:00) [4]


> А тут решил включить


и где же ?


> обработки ошибок


блок try..finally не предназначен для обработки исключений
для этого существует блок try..except


Наверх

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