public class TempFileRef
{
public readonly string FilePath;
public TempFileRef(string filePath)
{
FilePath = filePath;
}
~TempFileRef()
{
File.Delete(FilePath); //<== what happens if exception ?
}
}
问题:
如果析构函数中发生异常会发生什么?
1)它会破坏F-队列中的其他finalization吗?
2)我将使用Try
和Cache
来包装它 - 我将永远不会
知道是否出现错误
3)在这里应该做些什么?
编辑
MSDN基于"如果我**忘记**调用Dispose方法 - 因此GC最终将执行它.... 比永远都好..."
的模式。因此,我的问题是关于Finilize(析构函数)中的异常。