AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Exception Messagebox unterdrücken

Offene Frage von "MrZweig"
Ein Thema von Golze · begonnen am 1. Sep 2004 · letzter Beitrag vom 26. Sep 2004
Antwort Antwort
Seite 2 von 2     12   
MrZweig

Registriert seit: 5. Mär 2004
13 Beiträge
 
Delphi 6 Professional
 
#11

Re: Exception Messagebox unterdrücken

  Alt 8. Sep 2004, 20:32
Da muss ich doch nochmal einhaken.

Die Meldung "Connection Closed Gracefully" kommt leider weiterhin - trotz
das ich den Schalter deaktiviert habe, neu compiled, und als .exe gestartet.

Soll ich vielleicht in den INDY exceptions etwas aendern
damit es unterdrueckt wird?

Gruss,
der Zweig
--
sup sup
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Exception Messagebox unterdrücken

  Alt 8. Sep 2004, 20:34
Ich würde solche "richtigen" Exceptions nicht einfach abfangen, das muss doch einen Grund haben, wieso die Meldung kommt.

Du solltest lieber danach schauen, wie du den Fehler behebst und nicht einfach den Fehler ignorieren.
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#13

Re: Exception Messagebox unterdrücken

  Alt 8. Sep 2004, 20:39
Soweit ich weiss ist "Connection closed gracefully" kein wirklicher Fehler sondern bedeutet, dass alle geklappt hat. Die Indys benutzen die Exceptions scheinbar gerne als Statusmeldung.
  Mit Zitat antworten Zitat
MrZweig

Registriert seit: 5. Mär 2004
13 Beiträge
 
Delphi 6 Professional
 
#14

Re: Exception Messagebox unterdrücken

  Alt 8. Sep 2004, 21:09
Richtig. Diese spezielle Indy-Exception steht in den Debug-Optionen
auch mit einem Haeckchen davor - naemlich das Delphi die Grafecul-
Exception ignorieren soll.

Allerdings kommt eben trotzdem die Messagebox - und diese will ich
schlich unterdruecken. Habe auch ein Try.. except Block drumherum
welcher durchlaufen wird.. aber die Box kommt trotzdem (das Programm
laeuft ja normal im Hintergrund weiter..)

Bin da wirklich am Ende mit meinem Delphianisch

Gruss,
der Zweig
--
sup sup
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Exception Messagebox unterdrücken

  Alt 8. Sep 2004, 21:27
hi,

such doch in den indy-source-files nach dem string "connection cloced gracefully" (suchen > suchen in dateien). dsort einfach auskommentieren

Aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Exception Messagebox unterdrücken

  Alt 9. Sep 2004, 22:34
Und das ist genau das Schlimmste, was er machen kann. Mit der Forensuche hätte man erstens einen Beitrag gefunden, wie man diese Exception deaktiviert und einen Beitrag von hagen, warum diese Exception eigentlich keine ist, aber denn noch vom Indy Team geworfen wird.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Lord Dave

Registriert seit: 5. Sep 2004
Ort: Offenburg
44 Beiträge
 
#17

Re: Exception Messagebox unterdrücken

  Alt 9. Sep 2004, 22:38
Hi,

soweit ich das noch in Erinnerung habe ist die "Connection closed gracefully" nur bei Servern keine Fehlermeldung, bei Clients jedoch schon... oder irre ich mich da?
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#18

Re: Exception Messagebox unterdrücken

  Alt 10. Sep 2004, 00:33
ist eine Exception ein Fehler ?
Übersetze mal 1 zu 1 das Wort Exception, dann dürfte klar sein das man auch andere Ausnahmebedingungen mit Exceptions abhandeln kann. Genau dies machten die Indy Coder.

EAbort ist ja auch kein Fehler sondern eine Ausnahme.


EConnectionClosedGraceFully: wie soll eine TCP/IP Verbindung sauber getrennt werden ? Egal ob zuerst der Server oder der Client die Verbindung kappt, es entsteht immer diese Ausnahme. Somit eben kein Fehler sondern eine Ausnahme die im Normalfalle, egal ob Client oder Server eine Endlosschleife im Source beenden sollte. Dies vereinfacht die Programmierung der TCP Server/Clients erheblich.

Gruß Hagen

PS: Foremmaster ihr solltet mal den Tooltipp für Exception überprüfen
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Exception Messagebox unterdrücken

  Alt 26. Sep 2004, 14:39
Hi,
in meinem Datenbankprojekt nutze ich die Komponente TApplicationEvents. Dort gibt es das Ereignis "OnExeption". Dort habe ich Fehler vom Interbase abgefangen und nur die anderen Exceptions werden angezeigt.


IBError := E is EIBError;

if not IBError Then
Application.ShowException(E);


Vielleicht hilf das dir bei deinem Problem.

André
André
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#20

Re: Exception Messagebox unterdrücken

  Alt 26. Sep 2004, 15:25
Das hilft nicht wirklich weiter, da damit nur die Anzeige das eine Exception eingetreten ist unterdrückbar ist. Mit dieser Methode kann man also nicht ganz gezielt den Programablauf beeinflussen.

Im Grunde ist es doch absolut easy, die einzenlnen TCP/IP Client->Server arbeiten fast immer nach dem gleichen Schemata:

1.) Client verbindet mit Server
2.) Client TCP/IP Procedure ist fast immer eine Schleife bzw. linear sequentiell aufgebaut
3.) Server spaltet eigenen Thread pro verbundenen Clienten ab, dessen Thread Funktion ist immer eine Schleife
4.) Client und Server kapseln ihren TCP/IP Code immer in try except end Blöcken.
5.) Client sollte sich regulär beim Server per Kommando abmelden
6.) aus Clientside wird damit zwangsläufig immer eine Exception ausgelösst da es der Server ist der die Verbindung aktiv trennt.

So, auf beiden Seiten wird also die komplette Schleife in einem try except Block gekapselt. Das wars dann schon, denn in dem lokalen Exception Handler kann man nun ganz gezielt EConnectionCloseGraceFully abfangen.

In meinen TCP/IP Servern stelle ich zusätzlich aber noch sicher das der Client sich immer beim Server über ein Kommando abmeldet. Der Server beendet also seinen ClientThread nach dem Empfang dieses Commandos und auf Client-Seite wird damit zwangsläufig immer diese Exeption ausgelösst und die Clientprocedure verlassen.
Da der Server eine gemeinsam genutzte Resource imWEB darstellt ist es besser immer im konzeptionellen davon auszugehen das der Server so wenig wie möglich durch einen Clienten belastet wird. Demzufolge sollte es der Server sein der die Verbingungen zu seinen Clients aktiv trennt.

Gruß hagen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:17 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