Thread AnrufeAnalyse/Statistiken (13 answers)
Opened by J0ke at 2017-03-14 12:49

murphy
 2017-03-16 22:58
#186244 #186244
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
2017-03-16T15:44:55 hlubenow
[...]
Das ist wohl eine Erziehungsfrage. Wenn man eine Tür aufmacht, muß man sie auch wieder zumachen.

Zu beachten ist aber, dass eine explizit geschlossene "Tür" in einem Programm nur dann wirklich zugeht, wenn das Programm auch beim expliziten Schließbefehl vorbeikommt! Im Zusammenhang mit Exceptions und anderen nicht-lokalen Kontrolltransfers ist das nicht selbstverständlich der Fall.

Die impliziten Mechanismen, die ein Objekt automatisch aufräumen, werden hingegen auch bei ungewöhnlichem Kontrollfluss ausgelöst und können deswegen nicht vergessen werden.

Im Allgemeinen ist es gar nicht so einfach, eine Ressource manuell unter allen Umständen korrekt aufzuräumen. In Java zum Beispiel wurde ein impliziter Aufräummechanismus eingeführt, nachdem die Sprachdesigner feststellen mussten, dass selbst ihre eigenen Best-Practices-Tips im Benutzerhandbuch, wie man Datenströme sicher von Hand schließen sollte, fehlerhaft waren ;-)
When C++ is your hammer, every problem looks like your thumb.

View full thread AnrufeAnalyse/Statistiken