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
Antwort Antwort
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
669 Beiträge
 
Delphi 12 Athens
 
#1

AW: Wieso Speicheranforderung in Try...Finally ?

  Alt 16. Aug 2011, 12:58
Hi Luckie,

finde ich gut, dass wir uns zumindest einig sind, dass das try-finally keine Fehlerbehandlung ist. Manchmal entstand für mich beim Lesen der Threads der Eindruck, als würde das so gesehen, deswegen hatte ich es einfach mal so klar geschrieben.

Und ein Ressourcenschutzblock macht eine Anwendung in sofern robuster, dass in einem Fehlerfall der Speicher nicht zu läuft. Nehmen wir an man bearbeitet in einer Schleife hunderte von Objekten (Bilder zum Beispiel). Jetzt kommt es bei mehreren Bildern zu Fehlern, warum auch immer. Habe ich jetzt keinen Ressourcenschutzblock, würde der allozierte Speicher nicht mehr freigegeben. Und das kann durch aus zu kritischen Situationen führen. Oder anderes Beispiel: Ich schreibe ein Programm welches Ressourcen benötigt, die nicht immer unbedingt verfügbar sind, weil der Server weggebrochen ist. Da haben wir wieder das gleiche Problem. Nicht immer muss ein Programm unbrauchbar sein, wenn mal eine Ressource nicht zur Verfügung steht.
Ja, aber! Das sind eigentlich doch schöne Beispiele, die unterstreichen können, was ich sagen wollte. In beiden Szenarien gibt es Situationen, in denen etwas schieflaufen kann (einmal eine komplexe Berechnung mit großen Datenmengen, einmal der Zugriff auf externe Ressourcen). Nun ist es natürlich nicht verkehrt, dann immerhin den Speicher wieder freizugeben, aber was ich meine ist ja: das hilft mir ja auch nur bedingt weiter, wenn dann halb bearbeitete Bilder im Speicher rumliegen oder Befehle an den Server nicht abgesetzt werden können. In beiden Fällen muss die Situation doch sauber bereinigt werden, also brauche ich (auch) ein Except.

Daher meine ich ja, dass ein try-finally das Ganze schon etwas "weniger schlimm" macht, aber wirklich stabil macht es das Programm nicht. Insofern finde ich halt, dass man nicht immer alles zwanghaft mit try-finally umklammern muss, aber andererseits dann da, wo etwas schiefgehen kann, die Exception auch wirklich mit try-except behandelt.

Damit möchte ich auch niemandem ein try-finally komplett ausreden. Ich sehe ja schon, dass ein Problem damit vielleicht weniger schlimm werden kann. Aber manchmal wirkt es halt so, als sei alles andere schlechter Stil, und das finde ich eben nicht.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#2

AW: Wieso Speicheranforderung in Try...Finally ?

  Alt 16. Aug 2011, 13:05
Manchmal entstand aber andersherum der Eindruck, als sei es völlig unnötig, einen Ressourcenschutzblock zu verwenden. Wenn man sich aber daran gewöhnt, die Dinger immer zu benutzen, dann hat man sichergestellt, dass der reservierte Speicher auch garantiert wieder freigegeben wird (außer in extremen Härte-Situationen wie BSODs, aber dann ist ein Speicherleck wohl die kleinste Sorge), egal was zwischen try und finally steht oder aufgerufen wird. Das und nur das ist deren Sinn.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:03 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