Klassiker ist z.B. bei http, wenn noch eine Antwort gesendet werden soll, aber die andere Seite nicht mehr "zuhört".
Dafür gibt es in den Debuggeroptionen (Tools --> Optionen --> Debugger-Optionen --> E,barcadero-Debugger --> Sprach-Exceptions) bereits den Eintrag "
Indy Stille Exceptions". Wenn du den Haken setzt oder EIdSilentException dort hinzufügst, bekommst du diese intern zur Benachrichtigung verwendeten Exceptions nicht mehr in der
IDE angezeigt.
Ich finde die Stelle auf die Schnelle gerade nicht, aber wenn ich mich recht entsinne, dann steht in dem Quellcode sogar sowas wie "die
Exception hier kann man eigentlich meistens ignorieren"
Unit IdIOHandler --> TIdIOHandler.RaiseConnClosedGracefully
und ich denke mir immer: "ja, warum werft ihr sie dann?!".
Weil sie intern den Programmablauf steuern. Die Alternative wäre, dass man entsprechende Rückgaben einbaut, die dann geprüft werden usw., aber dadurch würde es viel mehr Ablaufsteuerungscode geben, so dass der Quelltext unübersichtlicher würde.
Ich habe Exceptions auch schon so genutzt. Das hat Vor- und Nachteile.