Is the destructor called if the constructor throws an exception?
It does for C# (see code below) but not for C++. using System; class Test { Test() { throw new Exception(); } ~Test() { Console.WriteLine(“Finalized”); } static void Main() { try { new Test(); } catch {} GC.Collect(); GC.WaitForPendingFinalizers(); } } This prints “Finalized”