![]() |
Generelle Frage zu den Indy-Komponenten
Hallo-
Eigentlich bin ich ein großer Freund von Abstraktionen, beispielsweise der Delphi-Aufsatz TThread zu reinen WinAPI-Methoden. Aber mit den Indy-Komponenten komme ich ehrlich gesagt überhaupt nicht zurecht. Die blöden Teile werfen bei jeder erdenklichen Gelegenheit Exceptions: Ich habe eine ![]()
Delphi-Quellcode:
von Indy ausführt, dieses aber eine Exception wirft und die nicht gefangen wird. Ich scheine also nicht der einzige zu sein, der da nicht wirklich durchblickt zumal ich entweder zu dumm bin, oder das auch in der (wenn überhaupt vorhandenen) Quelltext-Doku nicht kenntlich gemacht wird.
DisconnectClient()
Ich brauche keine konkrete Hilfe, auf lange Sicht ist mir der ganze Kram jetzt schon so unsympathisch dass ich es wahrscheinlich wieder manuell über WinSockets machen werde. Ich möchte nur wissen, ob es mir nur so vorkommt, oder die Indy-Dinger wirklich wunderbar gerne bei jeder Gelegenheit Exceptions werfen - Und wenn ja, ob das überhaupt gut gelöst ist. Die zwingen einen ja gerade dazu, Exceptions zu essen... |
AW: Generelle Frage zu den Indy-Komponenten
Also ich habe mich schon vor ein paar Jahren gegen Indy entschieden, weil es mir auch nur Probleme gemacht hat. Indy 9 hatte was was ich brauchte, das in Indy 10 nicht ging und Indy 10 hatte was was ich brauchte, das wiederrum in Indy 9 nicht ging. Durch ständiges Switchen von Indy 9 auf 10 und wieder zurück war zum Schluss das komplette Chaos, so dass ich, bevor ich komplett verzweifelte, das ganze anders gelöst hatte.
Allerdings fällt mir hier auf, dass es wohl doch viele gibt, die Indy verwenden, oder fällt es mir hier nur auf, dass so viele Probleme damit haben, wer weiß... |
AW: Generelle Frage zu den Indy-Komponenten
|
AW: Generelle Frage zu den Indy-Komponenten
@Der schöne Günther:
Wo liegt den konkret Dein Problem mit den Indys ?! Klar die Indys schmeissen viele Exceptions, das ich aber auch so gewollt! Exceptions zum Fehlerhandling! Wenn man das weiß & berücksichtigt, lässt sich mit Indy gut arbeiten. Ich habe die Indys in einigen Projekten zur TCP/IP Kommunikation genutzt und würde es wieder tun. Greetz Data P.S.: ICS & Synapse funktionieren aber auch |
AW: Generelle Frage zu den Indy-Komponenten
Also mich verwundert die Frage schon sehr. :shock: Ich bin immer noch etwas erstaunt darüber, dass es einwandfrei gelingt mit 10 Zeilen eine email zu empfangen oder einen FTP-Server zu bestücken.
Wo kommen denn die Exceptions überhaupt her ? Zeig mal eine. Vielleicht liegt der Fehler ja auch hier : Zitat:
|
AW: Generelle Frage zu den Indy-Komponenten
Zitat:
![]() Ich will nichts schlechtreden, vielleicht habe ich auch einfach nur eine tolle Dokumentation übersehen. Der Quelltext von idTCPConnection beispielsweise besteht zu 25% aus einer Changelog und mindestens 10% von Kommentaren zu Fehlern aus Vorgängerversionen. Auch wenn die Methodennamen halbwegs selbstredend sind - Was drinnen nun konkret vorgeht hätten ein paar Kommentare gerne näher erläutern können. Mein Punkt war nur, dass ich anscheinend nicht der einzige bin, der solche Probleme hat. Ich wollte nur wissen, ob das von der Indy-Philosophie wirklich so gewollt ist. Ganz gemütlich plauschen. |
AW: Generelle Frage zu den Indy-Komponenten
@Der schöne Günther:
Jap, das ist so gewollt! Wie Hansa auch schon sagt, so viele Exceptions sind es gar nicht mehr. FTP, Email und andere Protokolle laufen komplett ohne Exceptions ab(es sei den es kann nicht verbunden werden oder es fehlen Rechte). Wenn Du eine eigene Kommunikation mit IdTcpServer und IdTcpClient aufbaust, gibt es auch nur 4 Stellen wo Du was abfangen must: - Connect - Disconnect - Alle Schreiboperationen - Alle Leseoperationen Ob Du diese dann ignorierst oder weiter verarbeitest bleibt allein Dir überlassen. Viele der Exceptions erscheinen auch nur innerhalb der IDE !!! Hoffe das hilft weiter, Greetz Data |
AW: Generelle Frage zu den Indy-Komponenten
Zitat:
![]() |
AW: Generelle Frage zu den Indy-Komponenten
Ganz genau, eine der wenigen bösen Stolperfallen !! Gute Anmerkung
|
AW: Generelle Frage zu den Indy-Komponenten
Eine Komponente zu verwenden, die im Destroy ein Disconnect mit potentieller Exception verwendet ist aber auch nicht gerade das gelbe vom Ei, da würde ich eher hier ansetzen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz