Autor Beitrag
Alebo
Hält's aus hier
Beiträge: 15



BeitragVerfasst: So 26.10.03 16:23 
Hallo

Ich habe eine Liste mit URLs plus zugehörigen Usernamen und Passwörtern. Diese lasse ich mt einer Schleife überprüfen, allerdings bekomme ich bei einigen Adressen die Fehlermeldung "Socket Fehler 10065; Keine Route zum Host". Nach der Fehlermeldung scheint die Schleife zu unterbrechen.
Gibt es eine Mäglichkeite diese Fehlermeldung zu umgehen, so dass sie erst garnicht angezeigt wird und die Schleife die Nächsten URLs checkt?

Hier der Code:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
var
row : integer;
responseStream: TMemoryStream;
http: TIDHttp;
begin
row := 0 ;
while row <> Jvlistview1.items.Count do
  begin
  responseStream := TMemoryStream.Create;
  http := Tidhttp.create(nil);
  http.Request.Username := JvListView1.Items[row].Subitems.Strings[1];
  http.Request.Password := JvListView1.Items[row].Subitems.Strings[2];
  http.Request.BasicAuthentication := True;
  try

    HTTP.Get(Jvlistview1.Items[row].SubItems.strings[0], responseStream);
  except
    on EIdHTTPProtocolException do
      JvListView1.Items[row].Subitems.Strings[3] := HTTP.ResponseText;
  end;//try
  if HTTP.Responsetext = 'HTTP/1.1 200 OK' then
    JvListView1.Items[row].ImageIndex := 2
  else
  JvListView1.Items[row].ImageIndex := 1;
  JvListView1.Items[row].Subitems.Strings[3] := HTTP.ResponseText;
  responsestream.Free;
  http.Free;
  JvListView1.UpdateItems(row,row);
  inc(row);
////////////////////////////////////////////////////////
  end///while
end;

Ich hoffe ihr könnt mir helfen,
Alebo

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Mo 27.10.03 17:59 
also "Keine Route zum Host" heißt normalewrweise, dass der Host gerade nicht auffindbar ist....

wo genau bekommst denn die Exception? doch hier, oder?
ausblenden Quelltext
1:
HTTP.Get(Jvlistview1.Items[row].SubItems.strings[0], responseStream);					


und das is ja eigentlich in nem try..except-Block... :?


MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
Alebo Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mo 27.10.03 18:35 
Ja, das ist die richtige Stelle.
Ich kann mir auch nicht erklären, warum da überhaupt ne Fehlermeldung kommt. da ich ja extra mit "try" arbeite.
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Mo 27.10.03 18:43 
kommt die fehlermeldung (nur) wenn du das Prog aus der IDE raus startest oder auch wenn du einfach die EXE an sich startest? die try..except-blöcke haben nämlich "nur" auswirkungen auf die fertige EXE dann (g.h. in der IDE haben sie auch auswirkungen, bloß springt da der debugger von Delphi ein und meldet dir die Exception; aber der is wenn man nur die EXE startet ja nich mehr an *g*)...


MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Mo 27.10.03 19:40 
Hi,

Alebo hat folgendes geschrieben:
Ich kann mir auch nicht erklären, warum da überhaupt ne Fehlermeldung kommt. da ich ja extra mit "try" arbeite.


Du fängst aber eine andere Exception ab. du musst die EIdSocketError abfangen und falls du's noch nicht getan hast die Unit IdException einbinden:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
uses
  IdException;

//......

    except
      on EIdSocketError do


MFG

- Ernesto -
Alebo Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mi 29.10.03 17:30 
Danke für die schnelle Antwort.

Weißt du auch, wie man diese Fehlermeldung umgeht "Socket Fehler 10060, Zeitüberschreitung bei Verbindung"?

Oder kann mir jemand sagen wo ich eine Liste mit allen möglichen Fehlern finde und den Möglichkeiten sie zu umgehen?

Mfg Alebo
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Mi 29.10.03 21:10 
Hi,

um welche Exception-Klasse handelt es sich denn? Wenn du das Programmm aus der Entwicklungsumgebung heraus startest und es kommt zu einer Exception, wird in einer MessageBox auch die Exception-Klasse angezeigt und die musst du abfangen.

MFG

- Ernesto -
Alebo Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mi 29.10.03 22:46 
Der Debugger gibt eine Fehlermeldung vom Typ EIdSocketError aus.
Aber ich habe ja schon, wie du es gesagt hast "on EIdSocketerror" in den Except-Block aufgenommenm, dennoch bekomme ich eine Fehlermeldung wenn ich das Programm ohne die Delphi-IDE aufrufe.