AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi INDY9 Exceptions beim Debuggen
Thema durchsuchen
Ansicht
Themen-Optionen

INDY9 Exceptions beim Debuggen

Ein Thema von the_Sisyphos · begonnen am 23. Nov 2003
Antwort Antwort
Benutzerbild von the_Sisyphos
the_Sisyphos

Registriert seit: 19. Nov 2003
2 Beiträge
 
Delphi 6 Enterprise
 
#1

INDY9 Exceptions beim Debuggen

  Alt 23. Nov 2003, 22:17
Bei der Verwendung von Indy in der Version 9 kommt es beim Debuggen öfters vor das man Fehlermeldungen .. oder sagen wir besser Ereignisse .. in der Form

EIdConnectTimeout
EIdConnClosedGracefully
EIdSocketError


erhält was nur lästig ist und die sich NICHT durch einen

try
except


Block abfangen lassen, was man normalerweise vermuten würde. Eben weil die Entwickler von Indy es nicht als Fehler (für das ein EXCEPT stattfinden würde) deklarieren, sondern nur eine Ereignisnachricht. Irgend wo in einer Include Date wird dann etwas davon gefaselt es in die Liste der "Silent Exceptions" aufzunehmen. Doch wo stehen die ?

Die Lösung des Problems ist Trivial und nachdem ich mich selbst mit diesem Problem einige Zeit herumgeärgert habe möchte ich die Lösung nicht für mich behalten.

Unter:

Tools -> Debugger Optionen -> Sprach-Exceptions

einfach die oben genannten Ereignisse mittels [Hinzufügen] einfügen und Voilá er ignoriert fürderhin beim Debuggen dieses Ereignis. Mit dem Häckchen an der Seite kann man dies bequem ein und ausschalten.

Schöner wäre es natürlich das Ereignis über einen Compilereschalter hinzuzufügen, aber ich habe leider keinen gefunden .. na was solls .. Lustigerweise funktioniert das Beispiel mit dem Timeouts trotz das der Debugger sie ignoriert .. oder sagen wir mal besser .. er schmeißt sie nicht mehr in eine DialogBox auf den Bildschirm sondern behandelt sie so wie man es von try..except gewohnt ist

Unterhalb noch einmal ein Beispiel das mir soviel Probleme bereitete

Code:
  ...
  with IdHTTP1 do begin // ein HTTP Client Objekt
    IdHTTP1.Host:=192.168.1.2;
    IdHTTP1.Port:=80;
    if IdHTTP1.Connected = False then begin
      try begin
        // Ein Connect auf die IP versuchen
        IdHTTP1.Connect(100); // TimeOut 100 Millisekunden
        {
         ... hier das tun was nach dem Connect passieren soll ...
        }
      end
      except
        {
         ... hier das tun was bei einem TimeOut passieren soll ...
        }
      end
    end
    else begin
        {
         ... hier das tun was passieren soll wenn schon Connected ...
        }
    end;
    Disconnect;
  end;
  ...
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:00 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