Thread AnrufeAnalyse/Statistiken
(13 answers)
Opened by J0ke at 2017-03-14 12:49 2017-03-16T15:44:55 hlubenow 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.
|