Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Thread stürzt ab Indy TCPIP Client

  Alt 9. Jan 2015, 10:31
Es werden eben nicht alle Exceptions geloggt, sonst würdest du eine weitere sehen. Das Thread-Objekt hat auch noch eine Exception, die du abfragen kannst, wenn der Thread sich beendet hat.

Delphi-Referenz durchsuchenSystem.Classes.TThread.FatalException

Da findest du deine Exception. Ausgelöst wird diese durch das, was du da in deinem Except-Teil veranstaltest. Der beste Kandidat dafür ist FIdTCPClient.IOHandler.InputBuffer.Clear; .

Das liegt daran, dass du relativ blind bei jeder Exception davon ausgehst, dass du die so behandeln kannst. Dem ist aber nicht so. Bei einer Zugriffsverletzung kannst du das so eben nicht behandeln.

Darum gibt man auch explizit die Exceptions an, die man behandeln kann. Wäre in deinem Falle irgendeine der EIdExcetion s. Dem Socket-Fehler kann man so eben nicht beikommen. Im Extremfall schmeisst du mit FreeAndNil den Tcp-Client einfach aus dem Speicher und am Anfang der Schleife erstellst du bei Bedarf den Client.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat