![]() |
AW: Fehlertoleranz DELPHI Compiler
Das Problem schient so wichtig zu sein, dass man es hier paralell in mehreren Threads diskutiert!
|
AW: Fehlertoleranz DELPHI Compiler
Zitat:
|
AW: Fehlertoleranz DELPHI Compiler
Zitat:
[add] Post #22 |
AW: Fehlertoleranz DELPHI Compiler
Zitat:
P.S. Wobei das Problem bei ARC nicht aufgetreten wäre :twisted: |
AW: Fehlertoleranz DELPHI Compiler
Das mit der GC Problematik meinte ich. Aber meine Meinung ist ja nicht relevant.
|
AW: Fehlertoleranz DELPHI Compiler
Zitat:
Mir scheint hier irgendwie teilweise das Bild vorzuherrschen, Garbage Collectors wären dazu da, schlechten Programmierstil zu kaschieren oder ähnliches und mit genügend "Skill" hätte man soetwas nicht nötig. Das ist, gelinde gesagt, völliger Schwachsinn. |
AW: Fehlertoleranz DELPHI Compiler
Zitat:
|
AW: Fehlertoleranz DELPHI Compiler
Vielleicht können wir uns darauf einigen, dass es um vergessene Referenzen auf aufgelöste Objekt(speicherplätz)e geht.
Solche Zugriffe sollten sowohl von der BL als auch von der GUI vermieden werden. Dennoch kann es vorkommen, insbesondere bei der Entwicklung eines komplexen Projektes. Man braucht ja nur den Owner aufzulösen und vergisst, dass das Objekt diesem zugeordnet ist. Schön wäre es, wenn alle Referenzen auf ein Objekt bei dessen Auflösung automatisch genilt würden, aber das wird auch in Zukunft nicht realisierbar sein. Mit Assign(Referenz) könnte man immer auf die Existenz des Objektes prüfen. Die Objektreferenz noch am Leben zu erhalten und damit auf fragwürdige Daten zuzugreifen finde ich eigentlich nicht optimal. Es hat eben Vor- und Nachteile. Sofern man mit den Daten nix weiter anstellt, ist das für das Projekt nicht weiter schädlich. Wenn die Existenz des Objektes aber mein übriges Projekt beeinflusst, dann ist das natürlich schlecht. Also sollte man ein Objekt vor dem Auflösen "disablen", so können vergessene Referenzen erkennen, dass das Objekt, auf welches sie zeigen eigentlich nicht mehr da ist. Ein prakisches Beispiel ist Windows: Führt man in einem Control ein Schließen seines ParentForms durch, erhält dieses Control evtl. zuvor noch den Focus. Winndows will das Control kurz darauf schön focussiert zeichnen. Form und Control sind nicht mehr da - es knallt. (Das hängt wohl tatsächlich mit den Handels zusammen, ist aber ein anschauliches Beispiel.) |
AW: Fehlertoleranz DELPHI Compiler
Zitat:
Dann gibt es auf einmal in Programmen überhaupt keine Notwendigkeit mehr auf Zugriffe auf ungültige Objekte überhaupt zu testen "wegen der Geschäftslogik in realen Softwaresystem". Als nächstes kommt ihr noch auf die Idee und schreibt für C# einen Meta-GC, der verhindert, dass dort Weak-References jemals auf ungültige Targets verweisen können... Comedy vom feinsten... |
AW: Fehlertoleranz DELPHI Compiler
Ab TComponent könnte man aber schon seit Jahrzehnten Listen erstellen (hat nur noch keiner gemacht), wo die Referenzen automatisch entfernt werden, wenn jemand Anderes (z.B. der Owner) das Objekt freigibt.
Also ab TComponent ist dieses Feature drin, wenn man es nicht selber implementieren will. Dieses wird z.B. für die ganzen (Kreuz)Verlinkungen ala Parent-Child und Owner-Owned verwendet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 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