Конференция "Сети" » Обработка ошибок
 
  • Саблезубый бомж (30.03.16 22:02) [0]
    Привет, есть вот такой код который стоит на таймере и грузит из файла в listbox содержимое txt, напишите пожалуйста как будет выглядеть такой же код только с обработкой ошибок, а то иногда вылазит ошибка "socket error 10054. Connection reset be peer.", а надо чтоб даже если такая ошибка и вылезет чтоб не выводилось сообщение о ней. Спасибо. Вот код:

          Stream := TMemoryStream.Create;
           try
             IdHTTP1.Get('http://blabla.ru/bla.txt', Stream);
             Stream.Seek(0, 0);
             if Stream.Size > 0 then
               ListBox1.Items.LoadFromStream(Stream);
           finally
             Stream.Free;
           end;
  • Eraser © (31.03.16 17:02) [1]

     try
       IdHTTP1.Get('http://blabla.ru/bla.txt', Stream);
     except
       on E: EIdSocketError do
       begin
         if E.LastError = WSAECONNRESET then
         begin
           // Do nothing.
         end;
       end;
     end;
  • Саблезубый бомж (31.03.16 20:33) [2]
    а где finally в коде? Я спросил именно мой код со всем моими делами только чтоб еще и обработка была ошибок, потому что не знаю как верно будет совместить всё это, а как обработк ошибок одна делается это и погуглить можно
  • Rouse_ © (31.03.16 23:01) [3]
    Совместить с ходу не получится, тут думать нужно
  • Eraser © (31.03.16 23:51) [4]

    > Eraser ©   (31.03.16 17:02) [1]

    правильнее думаю все таки так

     try
       IdHTTP1.Get('<a href="http://blabla.ru/bla.txt" target="_blank">http://blabla.ru/bla.txt</a>',Stream);
     except
       on E: EIdSocketError do
       begin
         if E.LastError <> WSAECONNRESET then
           raise;
       end;
     end;



    > Саблезубый бомж   (31.03.16 20:33) [2]


    > а где finally в коде?

    там же, где и был. вообще справку в делфи отменили что ли? да вроде нет
    http://docwiki.embarcadero.com/RADStudio/Seattle/en/Writing_Exception_Handlers
  • Саблезубый бомж (01.04.16 01:58) [5]
    вы мне можете как будет выглядеть мой код но с добавлением обработки этой ошибки? Что значит там же где и был? Был он у меня после try, а щас там except.
  • Саблезубый бомж (01.04.16 01:59) [6]
    Мой код имеется в виду чтоб была каждая строчка моего кода! Включая все действия с Stream и ListBox1.
  • Eraser © (01.04.16 02:47) [7]
    *facepalm*

    замени строку, где у тебя http адрес моим кодом.

    *facepalm*
  • Inovet © (01.04.16 04:25) [8]
    Вот научите, потом будет везде так делать.
  • Саблезубый бомж (01.04.16 09:17) [9]
    В каком смысле? Код плохой? И что значит везде так делать, я не программист, а пишу только 1 конкретную программу как хобби с конкретным набором действий, поэтому уж простите что не понимаю "элементарных" с вашей точки зрения вещей.
  • Саблезубый бомж (01.04.16 09:29) [10]
    Вобщем перепутал я, не тот кусок кода вызывал ошибку, а вот эта функция, при том что другие ошибки она вроде не показывает, если они возникают, а эту описанную мной в 1 посте показывает, тут неправильно обработка ошибок сделана?


    procedure TForm1.checkSpic();
    var
     Stream: TMemoryStream;
     minut: integer;
     params: TStringlist;
     myhttp1: TIdHTTP;
     myhttp2: TIdHTTP;
    begin
    //showMessage('check');
     if inet = true then
     begin
       Stream := TMemoryStream.Create;
       try
         try
           // IdHTTP3.Get(filepar, Stream);
           myhttp1 := TIdHTTP.Create(nil);
           myhttp2 := TIdHTTP.Create(nil);
           myhttp1.Get(filepar, Stream);
           minut := StrToInt(myhttp2.Get(blabla/time.php'));
           //showMessage('
    poneslas');
           if (minut >= 30) then
           begin
             params := TStringlist.Create(); // создадим переменную str
             params.Add('
    id=' + IntToStr(myid)); // добавим параметр
             myhttp2.Post('
    http://super-mult.ru/b/saveon.php', params);
             // Отправим запрос
             FreeAndNil(params); // Разрушим переменную str
           end;
           Stream.Seek(0, 0); // установим указатель потока в начало
           //if Stream.Size > 0 then
             //ListBox7.Items.LoadFromStream(Stream);
         except
           on E: Exception do
           begin
             myhttp1.Disconnect;
             myhttp2.Disconnect;
             //ShowMessage(E.ClassName+'
    поднята ошибка, с сообщением : '+E.Message);
           end;
         end;
       finally
         Stream.Free;
         myhttp1.Destroy;
         myhttp2.Destroy;
       end;
     end
    end;

  • DVM © (03.04.16 12:30) [11]

    > Вобщем перепутал я, не тот кусок кода вызывал ошибку, а
    > вот эта функция, при том что другие ошибки она вроде не
    > показывает, если они возникают, а эту описанную мной в 1
    > посте показывает, тут неправильно обработка ошибок сделана?
    >

    Не из под Delphi пробовал запускать?
  • Саблезубый бомж (03.04.16 13:00) [12]

    > Не из под Delphi пробовал запускать?

    Ну да, запускал на нескольких компах и на некоторых из них и вылазит такая ошибка
  • megavoid © (03.04.16 14:24) [13]

    procedure TForm1.checkSpic();
    var
    Stream: TMemoryStream;
    params: TStringlist;
    myhttp1: TIdHTTP;
    myHour, minut, mySec, myMilli : Word;
    begin
    if inet = true then
    begin
      Stream := TMemoryStream.Create;
      try
          myhttp1 := TIdHTTP.Create(nil);
          try
            myhttp1.Get(filepar, Stream);
          except
          end;
          DecodeTime(Now, myHour, minut, mySec, myMilli);
          if (minut >= 30) then
          begin
            params := TStringlist.Create(); // создадим переменную str
            params.Add('id=' + IntToStr(myid)); // добавим параметр
            try
              myhttp1.Post('http://super-mult.ru/b/saveon.php', params);
            except
            end;
            params.Free;
          end;
      finally
        myhttp1.Free;
        Stream.Free;
      end;
    end;
  • megavoid © (03.04.16 14:28) [14]
    и  if inet then begin ..., конечно же :)
    вообще, так [13] делать нельзя, но иногда можно.
  • Саблезубый бомж (05.04.16 05:37) [15]
    Спасибо, попробую, также я еще гдето читал что именно конкретно эта ошибка не относится к исключениям или что-то в таком роде и поэтому она появляется.
  • имя (21.04.16 14:39) [16]
    Удалено модератором
 
Конференция "Сети" » Обработка ошибок
Есть новые Нет новых   [118685   +13][b:0][p:0.002]