nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

TIdTcpServer.OnExecute

Von: Heinz Zastrau (heinz.zastrau@gmx.de) [Profil]
Datum: 13.06.2008 10:38
Message-ID: <g2tblu$sqq$1@news2.open-news-network.org>
Newsgroup: de.comp.lang.delphi.misc
Hallo,

mir begegnen immer mal wieder OnExcute für einen TIdTcpServer die wie
folgt implementiert sind:

procedure TFormXY.TcpServerExecute(AContext: TIdContext);
begin
try
...tu etwas wichtiges...
except
on e: Exception do
ProtokolliereAusnahme(e);
end;
end;

nun ist mein Verständnis der TIdTcpServer-Komponente so, dass Ausnahmen
der Klasse EIdException für das korrekte Verhalten des Servers (z.b. für
das korrekte Aufrufen von OnDisconnect) wichtig sind und deshalb nicht
gefangen werden dürfen. Somit solle ein OnExecute mit abfangen und
protokollieren von Ausnahmen mindestens so aussehen:

procedure TFormXY.TcpServerExecute(AContext: TIdContext);
begin
try
...tu etwas wichtiges...
except
on e: Exception do
begin
ProtokolliereAusnahme(e);
if  e is EIdException then raise;
end;
end;
end;

oder so

procedure TFormXY.TcpServerExecute(AContext: TIdContext);
begin
try
...tu etwas wichtiges...
except
on e: EIdException do
raise;
on e: Exception do
ProtokolliereAusnahme(e);
end;
end;

Ich habe das Gefühl, das gerade im Bereich TCP und Threads mehr Legenden
als Wissen unterwegs ist und möchte mich da nicht anschließen.

Also, was sagen die Experten? :-) Und welche anderen Quellen sind
hilfreich um ein tieferes Verständnis der Indy-Komponentn zu erlangen
oder gibt es gar bessere Alternativen (Open Source, gegen Geld) als Indy?

Ciao Heinz Z.

[ Auf dieses Posting antworten ]

Antworten