Du hast Recht, in der dritten Version wird
Free nur im Fall einer
Exception aufgerufen, mein Fehler.
Ich konnte die Compilerhinweise leider nicht rekonstruieren: Weder in "Deiner" noch in "meiner" Version treten bei mir Meldungen auf (Ja, die Hints sind aktiviert).
Marcelo beschreibt in seinem
BDN-Artikel
Exceptional exceptions, Learn about structured exceptions and some unusual ways to use them nicht nur das Verfahren, auf das ich mich berufe sondern zeigt ebenfalls die Besonderheiten der Methode
Free auf.
Es ist zu erkennen, das Verschachtelungen in beiden Ausprägungen nicht nur zulässig sondern in einigen Fällen auch zu "eleganterem" Code führen können. Es gibt demnach nicht nur "ein einzig richtiges Vorgehen",beim Erzeugen und Freibegen von Objekten.
Oder vestehe ich hier etwas falsch?