Deine Benutzung von Try-Finally ist aber inkorrekt. Wenn im Konstruktor nämlich eine
Exception geschmissen wird, wird Free aufgerufen. Die Instanz-Variable ist aber noch nicht initialisiert, die nil-Prüfung von Free funktioniert nicht, der Destruktor wird aufgerufen, versucht die nicht vorhandene Instanz freizugeben und es gibt eine Invalid-Pointer-
Exception.