Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Schleife on Exception weiterlaufen lassen (https://www.delphipraxis.net/13176-schleife-exception-weiterlaufen-lassen.html)

Pseudemys Nelsoni 12. Dez 2003 12:55


Schleife on Exception weiterlaufen lassen
 
hoiho,

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  i: integer;
  server, port: string;
begin
  for i := 0 to servers.Count-1 do
  begin
    Application.ProcessMessages;
    if pos(':', servers.Strings[i]) > 0 then
    begin
      server := copy(servers.Strings[i], 1, pos(':', servers.Strings[i])-1);
      port := copy(servers.Strings[i], pos(':', servers.Strings[i])+1, length(servers.Strings[i]));
      with idHTTP1 do
      begin
        Try
          ProxyParams.ProxyPort := port;
          ProxyParams.ProxyServer := server;
          Get('http://www.outwar.com/page.php?x=1550037');
          label8.Caption := IntToStr(StrToInt(label9.Caption)+1);
        except
          continue;
        end;
      end;
    end
    else
    begin
      continue;
      label10.Caption := IntToStr(StrToInt(label10.Caption)+1);
    end;
  end;
end;

hoi, wie kann ich die schleife weiterlaufen lassen falls beim aufruf von Get ein toter server erwischt wird?

irgendwie friert mein prog dann immer rein

X-Dragon 12. Dez 2003 13:01

Re: Schleife on Exception weiterlaufen lassen
 
Kenn mich damit zwar nicht so aus , aber das da sieht passend aus:
Delphi-Quellcode:
Var sReply : String;
begin
  IdHttp.ReadTimeOut := 5000; // 5 Sek.
  try
    sReply := IdHttp.Get('http://www.harribo.de/berechne.php?param1=wert1&param2=wert2');
  except
    sReply := 'READTIMEOUT';
  end;
  // jetzt steht in sReply die Serverantwort
  // weitere Verarbeitungen durchführen
end;
Quelle: http://www.delphipraxis.net/internal...ct.php?p=75809

Pseudemys Nelsoni 12. Dez 2003 13:05

Re: Schleife on Exception weiterlaufen lassen
 
hallo x-Dragon, aber nach der exception wird die schleife doch auchnichtmehr weitergehen oder?

X-Dragon 12. Dez 2003 13:28

Re: Schleife on Exception weiterlaufen lassen
 
Zitat:

Zitat von Pseudemys Nelsoni
hallo x-Dragon, aber nach der exception wird die schleife doch auchnichtmehr weitergehen oder?

Wie gesagt, hab ich es selbst noch nicht ausprobiert, aber zumindst würde ich die Art des Fehlers dort abfragen.

Pseudemys Nelsoni 12. Dez 2003 13:57

Re: Schleife on Exception weiterlaufen lassen
 
ein except(wenn es beendet ist) bricht soweit ich weiss die aktuelle prozedur ab
aber das möchte ich nicht, ich hätts gern ca so:

try
//irgendwas
except
mach einfach mit der schleife weiter
end


wenn ein server down ist komm ich ja sonst nie zum nächsten da wenn ein server down ist ja immer vorher abgebrochen wird

Minz 12. Dez 2003 14:03

Re: Schleife on Exception weiterlaufen lassen
 
Hi,

nö, die Prozedur wird nicht beendet

Code:
try
  irgendwas;
except
end;
Nach dem end; wird ganz normal weitergearbeitet,
es sei denn du benutzt nach except

Code:
raise Exception...
Gruß Minz

Pseudemys Nelsoni 12. Dez 2003 14:10

Re: Schleife on Exception weiterlaufen lassen
 
hm, wo hab ich das bloss her das die prozedur dann abgebrochen wird...

war das nicht so, dass wen man nicht:

try
irgendwas;
finally
sl.free; //stringlist variable
end;

macht, dass die variable "sl" nicht gefree't wird? oder gilt das nur innerhalb eines blocks?


jedenfalls danke, es geht nach dem except weiter =)... komisch nur das mein prog keine buttons mehr drücken lässt weils so lahm ist, (application.proccessmessages ist doch drin O_o)

Minz 12. Dez 2003 14:13

Re: Schleife on Exception weiterlaufen lassen
 
hurz? :mrgreen:

wär mir neu das das ding nicht "gefreet" wird.

Pseudemys Nelsoni 12. Dez 2003 14:24

Re: Schleife on Exception weiterlaufen lassen
 
jo, wenn ich z.b

Delphi-Quellcode:
procedure irgendwas;
var
  sl: TStringList;
  s: string;
begin
  sl := TStringList.Create;
  sl.add('irgendwas');
  s := idHTTP1.Get('www.irgendwas.de'); //wenn hier ein fehler auftritt
  sl.free;         // wird sl doch nichtmehr "gefreet" oder
end;

Minz 12. Dez 2003 14:28

Re: Schleife on Exception weiterlaufen lassen
 
achso ja klar!

aber nach

Code:
try
  irgendwas; //Fehler tritt auf
finally
  free;
end;
da wird das schon "gefreet"


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz