TsgcTCPClient › Gebeurtenissen › OnError
Wordt gegenereerd telkens wanneer een niet-fatale fout wordt gerapporteerd op de TCP-verbinding.
property OnError: TsgcWSErrorEvent;
// TsgcWSErrorEvent = procedure(Connection: TsgcWSConnection; const Error: string) of object
—
OnError rapporteert problemen op transportniveau die worden gedetecteerd tijdens het verzenden of ontvangen van gegevens op de TCP-socket, zoals een mislukte TLS-handshake, een heartbeat-time-out, of een fout die wordt gegenereerd tijdens het verzenden van een ontvangen payload. De parameter Error bevat een tekstuele beschrijving van de fout; de parameter Connection identificeert de betrokken sessie. Gebruik voor niet-afgehandelde uitzonderingen (socketfouten, access violations...) in plaats daarvan OnException. Wanneer Connection is toegewezen, sluit het component die verbinding zodra OnError is geactiveerd, ongeacht de opties: de handler is dan normaal al teruggekeerd, maar met NotifyEvents ingesteld op neAsynchronous wordt een fout die op een secundaire thread wordt gegenereerd, in de wachtrij geplaatst voor de hoofdthread en kan de handler ervan pas worden uitgevoerd nadat de verbinding is gesloten. Wanneer Connection nil is, wordt er niets gesloten.
OnError kan worden geactiveerd met Connection = nil, dus een handler moet Connection controleren voordat deze wordt gebruikt. WriteData en WriteAndWaitData melden op deze manier een bericht dat niet kon worden verzonden omdat de client niet is verbonden. De parameter Error is dan Data not sent, the client is not connected or its handshake has not completed. (resourcestring S_ERROR_CLIENT_NOT_CONNECTED), en de gebeurtenis wordt geactiveerd op de thread die de methode heeft aangeroepen, voordat de methode terugkeert. Een schrijfbewerking die mislukt nadat de client opnieuw is verbonden, wordt ook gemeld met Connection = nil, zodat de nieuwe verbinding niet wordt gesloten. Stel Options.RaiseDisconnectExceptions in code in op False om de melding van berichten die niet konden worden verzonden uit te schakelen.
procedure OnError(Connection: TsgcWSConnection; const Error: string);
begin
WriteLn('#error: ' + Error);
end;