寻找 C# 和 C++ 的答案。 (在 C# 中,将 'destructor' 替换为 'finalizer')
最佳答案
它适用于 C#(参见下面的代码),但不适用于 C++。
using System;
class Test
{
Test()
{
throw new Exception();
}
~Test()
{
Console.WriteLine("Finalized");
}
static void Main()
{
try
{
new Test();
}
catch {}
GC.Collect();
GC.WaitForPendingFinalizers();
}
}
这会打印“Finalized”
关于c# - 如果构造函数抛出异常,是否调用析构函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/188693/