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


Автор: Rodman 10.6.2008, 13:00
Дароф

Ситуация такая что я пишу 

Код

      http:=TIdHTTP.Create(nil);
      try
        for j:=1 to 15 do
        begin  
              sLine.Text:=http.Get(Links[j, 1]);
              ...//обрабатываю
        end; 
      except
        begin
          ShowMessage('Трабла. ахтунг');
          http.free;
        end;
      end;

но бывает такое что страницу низя открыть, по разным причинам и вылетает трабла 
Код

---------------------------
Debugger Exception Notification
---------------------------
Project AutoParser.exe raised exception class EIdHTTPProtocolException with message 'HTTP/1.0 404 Not Found'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------
как сделать так чтобы трабла в лог писалась, а потом продолжала следующие странички открывать и обрабатывать?

Сенкс

Автор: z-END 10.6.2008, 13:08
использовать try except приблизительно так как у тебя и показано. при запуске из под IDE нужно отключить остановку при эксепшенах или просто запускать как отдельнй файл (через проводник и т.п.) 

Автор: Rodman 10.6.2008, 13:23
не понял... 

Цитата(z-END @  10.6.2008,  13:08 Найти цитируемый пост)
при запуске из под IDE нужно отключить остановку при эксепшенах

как?

Автор: Snowy 10.6.2008, 14:13
При эксепшене в диалоге есть галочка - не стопориться на данном виде эксепшена.
Ставишь её, и всё. Больше среда не будет тебя на нём беспокоить.

Автор: Rodman 10.6.2008, 14:15
а все что в эксепшине написано в моем коде - убрать?:

Добавлено через 11 минут и 49 секунд
Цитата(Snowy @  10.6.2008,  14:13 Найти цитируемый пост)
Ставишь её, и всё. Больше среда не будет тебя на нём беспокоить. 

там жешь просто "View CPU window" и все...

не думаю что это то, что надо

Автор: Snowy 10.6.2008, 14:31
Вместо мессаги сделай добавление в лог текста ошибки.
Уничтожение объекта нужно поместить в finally, а не эксепшн!

Автор: sai_NT 14.6.2008, 11:02
примерно так:
Код

http:=TIdHTTP.Create(nil);
for j:=1 to 15 do begin
      try
              sLine.Text:=http.Get(Links[j, 1]);
              ...//обрабатываю
      except
              on E: Exception do LogMemo.Lines.Add(E.HelpContext+': '+E.Message);
      end;    
end;
http.free;


кинь на форму мемку и назови LogMemo.

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