Autor Beitrag
derkreis
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 24.02.12 13:18 
Hallo,

ich verwende Indy10 TIdSNTP zum Syncron halten eines Rechners mit einem NTP-Server. Das funktioniert auch recht gut.
Leider bringt Indy immer eine Message Box Socket error irgendwas, wenn die Netzwerkverbindung im Betrieb weg bricht.

Auch mit try ... except läßt sich diese Meldung nicht unterdrücken.

Gibt es einen Weg Indy zum schweigen zu bringen?

Gruß

Ralf


Moderiert von user profile iconNarses: Topic aus Windows API verschoben am Fr 24.02.2012 um 12:27
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 24.02.12 13:28 
Moin und :welcome: in der EE!

user profile iconderkreis hat folgendes geschrieben Zum zitierten Posting springen:
Auch mit try ... except läßt sich diese Meldung nicht unterdrücken.
Doch, das tut es, allerdings nicht (standardmäßig) in der IDE. Wenn du das Programm ohne IDE startest und einen (korrekten!) try-except-Block verwendest, dann wird keine Meldung erzeugt. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 24.02.12 14:48 
Es sei denn die Exception ist keine echte Exception. Dann muss man das anpassen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
// statt:
on E: Exception do
  ...
// dann eben:
on E: TObject do
  ...
Das ist aber fast nie der Fall und ich schätze mal hier war auch wieder das Starten aus der IDE schuld. ;-)
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 24.02.12 14:53 
Moin!

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Es sei denn die Exception ist keine echte Exception. Dann muss man das anpassen:
Wenn ich die gesamte Ausnahmeverarbeitung abklemmen will, dann lasse ich doch einfach die on-Klausel weg, oder? :zwinker: Aber grundsätzlich hast du schon recht. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 24.02.12 16:01 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich die gesamte Ausnahmeverarbeitung abklemmen will, dann lasse ich doch einfach die on-Klausel weg, oder? :zwinker:
Dann fehlt mir aber die Exception. Wenn ich mit TObject arbeite, kann ich immer noch schauen was das ist und casten. ;-)

Und wie der Block hier aussieht, wissen wir ja nicht.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 24.02.12 16:19 
Moin!

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich die gesamte Ausnahmeverarbeitung abklemmen will, dann lasse ich doch einfach die on-Klausel weg, oder? :zwinker:
Dann fehlt mir aber die Exception.
Dem ist nicht so, es gibt ja noch ExceptObject! :les: :idea:

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich mit TObject arbeite, kann ich immer noch schauen was das ist und casten.
Sobald du eine on-Klausel hast, hast du auch unvermeidbar das "WhiteListe-Problem" und es kann dir immer was durchrutschen. Die einzige wirklich sichere Variante, um immer alle Ausnahmen abzufangen, ist keine on-Klausel nehmen. :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
derkreis Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 27.02.12 09:43 
Hallo,

erst mal danke für die Meldungen.

ich hab den Fehler nicht in der IDE (Testen ist nicht so gut möglich) In einer VW kann ich virtuell leichter den Netzwerkstecker ziehen ohne unangenehme Randeffekte.

ich mach das so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
      try
        AktuelleZeit := Form1.IdSNTP1.DateTime;
      except
//      Hier ist das Problem mit der Socket Meldung!!!!
        Form1.sllServerZeit.Hint := 'Verbindungsproblem mit dem Zeitserver: ' + ZeitServer;
      end;
      Result := AktuelleZeit;
Die Meldung "Socket Error # 10065 No route to host" erscheint jedoch immer noch, wenn das "Netzwerkkabel" abgeklemmt wird.

Gruß

Ralf

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 27.02.12 10:26 
Was hast du für eine Delphiversion? Bei aktuellen passiert das definitiv nicht.

Bist du ganz sicher, dass die Meldung an der Stelle passiert? Vielleicht baust du zur Sicherheit vorher und nachher ein ShowMessage ein um zu prüfen, falls du nicht 100% sicher bist...
derkreis Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 27.02.12 11:29 
Hallo,

Es ist Delphi 2010. Mit Showmessage hatte ich auch Exception-Probleme. Hab mich aber durch caption-Texte an die Stelle herangetastet.

Asche auf mein Haupt:
ausblenden Delphi-Quelltext
1:
      if ( MilliSecondsBetween( Now(), Form1.IdSNTP1.DateTime)  > ( MaxRange * 1000)) then begin					
Da kam es zur Meldung. Ich hatte das glatt überlesen

Sorry nochmal

Ralf

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt