Guten Abend,
habe folgendes Problem: Wenn ich eine Verbindung zu einem Host aufbauen will, der nicht erreichbar ist, dann kommen natürlich Fehlermeldungen, die aber abgefangen werden sollen. Das sollte eigentlich kein Problem sein...ist aber eins
Verbindung aufbauen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| ClientSocket:= IdTCPClient.TIdTCPClient.Create(Application); try ClientSocket.Host:= '192.xxx'; ClientSocket.Port:= 10001; ClientSocket.ReadTimeout:= 2000;
try ClientSocket.Connect(2000); except end; finally ClientSocket.Free; end; |
Nun habe ich versucht, die Exceptions so abzufangen (die 3 Möglichkeiten habe natürlich einzeln getestet):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| except on E: EIdConnClosedGracefully do begin showmessage('Fehler'); exit; end; on E: EIdSilentException do begin showmessage('Fehler'); exit; end;
showmessage('Fehler'); exit; end; |
Wenn ich das Erste teste, dann kommt: "Socket-Fehler # 11001 Host nicht gefunden"
Beim 2. Versuch kommt die Fehlermeldung, die beim Ersten abgefangen wurde: "Die Verbindung wurde erfolgreich geschlossen" (sowie beim 3. Versuch)
Was mache ich da falsch? Wie muss ich es denn sonst machen?
Viele Grüße,
Littleben