Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Error Popups / SocketError usw. (https://www.delphipraxis.net/45392-error-popups-socketerror-usw.html)

doom98 5. Mai 2005 12:16


Error Popups / SocketError usw.
 
Hallo,

gibt es eine Möglichkeit allgemein diese Fehlermeldungen/popups zu unterdrücken?
Ich schreibe grade einen IRC CLient und sobald Inet nicht geht kommen immer diese SocketError Meldungen und das nervt ganz schön.

errorcode = 0 geht bei dem OnSocketError Event nicht...

Mfg
Doomy

SirThornberry 5. Mai 2005 12:24

Re: Error Popups / SocketError usw.
 
du kannst das ganze doch in einen "Try-Except/Try-Finally" block packen

doom98 5. Mai 2005 23:26

Re: Error Popups / SocketError usw.
 
Hm wie müsste das den aussehen noch nie gemacht

Arnulf 6. Mai 2005 00:02

Re: Error Popups / SocketError usw.
 
Zitat:

errorcode = 0 geht bei dem OnSocketError Event nicht...
geht eigentlich schon - verwendest du fastnet componenten oder indy?

wenn es wirklich ein windows socket error ist, solltest du die mit errorcode := 0 schon abfangen können.
allerdings sollte man errors auch behandeln, weil du leicht in einer endlos schleife landen kannst oder access violation oder schlimmeres :).
try except hilft dir bei threads übrigens garnichts - und wenn du dazuwischen den prozess freigibst hast auch ein problem ( application.processmessages oder ähnliches).
Also wenn du bei deinen sockets threads verwendest, helfen dir try except blöcke nichts (ausser du baust das in den tread selbst ein).

ansonsten funktioniert try except so:

Delphi-Quellcode:
try
dein code
except
error behandeln
end;
ist in der delphi hilfe aber ganz gut erklärt.

wenn du recourcen anforderst und unbedingt willst, daß am schluß die recourcen wieder frei gegeben werden, dann nimmt man try finaly.

Delphi-Quellcode:
recource anfordern.
try
dein code
finally
recource freigeben
end;
Arnulf

doom98 6. Mai 2005 06:29

Re: Error Popups / SocketError usw.
 
Hi, achso danke für die Erklärung :).
Zitat:

Zitat von Arnulf
geht eigentlich schon - verwendest du fastnet componenten oder indy?

Ja ich benutze Indy.

Arnulf 6. Mai 2005 10:29

Re: Error Popups / SocketError usw.
 
zu meiner schande muß ich zugeben ich hab indy tcp noch nie verwendet deshalb weiß ich nicht, ob der error event ausgelöst wird - hab immer fastnet verwendet.

bei indy udp hab ichs auch mit try und except gemacht aber die laufen nicht in einem thread!

Naja ich werd mir indy tcp mal anschauen aber die waren immer umständlicher zu bedienen als fastnet.

Arnulf

doom98 6. Mai 2005 11:07

Re: Error Popups / SocketError usw.
 
Hat den Fastnet eine IRC Kompo?!
Dann würde schreib ich halt alles um.

Arnulf 6. Mai 2005 12:38

Re: Error Popups / SocketError usw.
 
nein hat es nicht.
vergiss es einfach - für irc hast soweit ich weiß nur indy.
hab einfach nicht wirklich nachgelesen wofür das sein soll.

wenn man ordentlich mit indy umgehen kann, gibts eh nichts besseres und normalerweise verwenden auch alle indy.
Fastnet oder Tserversocket - Tclientsocket ist hald komfotabler aber man kommt um indy eh nicht herum.

Da ich mit irc noch garnichts gemacht hab weiß ich auch nicht wie das läuft.
Das onerror nicht funktionieren soll bei indy finde ich seltsam.
Ich werd mich mal kurz schlau machen...
Eine möglichkeit um errors abzufangen - und ich finde, daß ist keine gute, ist den on exception handle mit einer eigenen funktion zu überschreiben.
Das geht aber nur, wenn indy wirklich keine error behandlung macht, weil sonst kommst garnicht in den exception handler von deinem programm.

Delphi-Quellcode:
Application.OnException := MyExceptionHandler;


procedure TfMain.MyExceptionHandler (Sender : TObject; E : Exception);
          begin
               if ( E.Message = 'Timeout' ) // oder ähnliches mußt dir die errors anzeigen lassen
          end;
Nur macht man das bei sockets normalerweise nicht so, weil die componenten eigentlich socket errors abfangen sollten!!

Arnulf


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz