AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wieso Speicheranforderung in Try...Finally ?

Ein Thema von FredlFesl · begonnen am 12. Aug 2011 · letzter Beitrag vom 16. Aug 2011
 
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.054 Beiträge
 
Delphi 12 Athens
 
#30

AW: Wieso Speicheranforderung in Try...Finally ?

  Alt 16. Aug 2011, 17:00
Wenn ich in einem except-Block rumfummle, dann bin ich äußerst vorsichtig und so ein erneutes raise schreibt man ja sehr bewusst - da kann man dann durchaus auch dran denken, ggf. das finally drumrum zu bauen.
Das kannst du bei privaten Projekten relativ leicht machen, aber wenn mehrere Personen an großen Projekten arbeiten, ist das ganze nicht mehr so einfach.

Insbesondere weil du auch gar nicht unbedingt weißt, wo in fremdem Code, auch z.B. in Drittanbieterbibliotheken, Exceptions auftreten können. Genauso weißt du aber nicht unbedingt, dass irgendwo so eine benutzt wird.
Deshalb ist es sinnvoller dies von vornherein abzusichern, dann braucht man sich nur um eine ordentliche Fehlerbehandlung weiter außen zu kümmern. Eben dort wo es Sinn macht. Dort wiederum kann man sich darauf verlassen, dass der Speicher der Unteraufrufe aufgeräumt ist und man "nur" einen definierten Programmzustand wiederherstellen muss.

Und wenn einer der anderen Entwickler irgendwo in einem Aufruf eine Bibliothek nutzt, die vorher nicht da war und die plötzlich eine Exception wirft, dann wird die zwar vom Exceptionhandler weiter oben abgefangen, aber da in dem restlichen Code die try..finally Blöcke nicht ergänzt wurden, der Speicher nicht freigegeben.

Das sind alles Unsicherheitsfaktoren, die man sich im professionellen Umfeld einfach nicht leisten kann. Code sollte so robust geschrieben sein, dass Änderungen an anderer Stelle nicht plötzlich Speicherlecks (oder Schlimmeres) aufreißen können (soweit eben möglich).
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
 


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 08:06 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