@jaenicke
Ja, meine Anwendungen sind recht überschaubar und ich arbeite allein daran.
Was ist dann besser? Ein Programm, bei dem Exceptions soweit möglich behandelt sind und durch Ressourcenschutzblöcke keine Speicherlecks auftreten, so dass es bis zu einer Lösung weitgehend normal weiter läuft, oder ein Programm, das man dann quasi gleich stilllegen kann bis eine Lösung gefunden ist, weil aufgrund des Fehlers der Speicher voll läuft?
Wenn durch den Fehler alle Konten der Bankkunden geleert wurden, wäre es besser, sofort abzubrechen und keine Daten mehr zu speichern. Wenn es sich um eine Zugriffsverletzung auf eine
VCL-Komponente handelt, kann man erst mal problemlos weiter arbeiten.
Da es sich aber um völlig unerwartete Fehler handelt, für die man keine Behandlung vorgesehen hat, ist schwer zu sagen, was aktuell besser ist.
Mir ging es halt wirklich nur um solche Beispiele wie im Eingangspost, die man immer wieder überall findet.
Der Speicher läuft ja nicht gleich voll, wenn der Fehler einmal pro Monat aufläuft und das Programm ansonsten zuverlässig ohne Datenverlust funktioniert.
Dann kann man "in Ruhe" den Fehler bereinigen.
Wenn das Problem dagegen jede jede Minute auftritt (auch ohne Datenverlust) und nicht gleich gelöst werden kann und sonst den Speicher vollmüllt, dann kann man die Freigabe vielleicht in einen finally-Block setzten und die Fehlermeldung zunächst unterdrücken - bis man den Fehler vernünftig klären kann. Aber das wäre natürlich nur ein notfalls akzeptabler Workaround.
Solch einen ständig auftretenden Fehler würde man doch aber normalerweise schon in Tests finden und vermeiden, denke ich.
Ok, vielleicht sehe ich das zu optimistisch durch meine recht überschaubaren Projekte.
@Delphi.Narium
Dann können wir vielleicht zu dem Schluß kommen, dass das eingangs von mir besprochene Beispiel (das man immer wieder findet) tatsächlich nicht viel Wert hat, da dort keine Fehlerbehandlung erfolgt.
Mit Fehlerbehandlung ist das ja dagegen alles in Ordnung.