public class TempfileRef { public Readonly string filePath; public TempfileRef(string filePath) { filePath = filePath; } ~TempfileRef() { file.Delete(filePath); //<== what happens if exception ? } }
题 :
如果析构函数中存在异常会发生什么?
1)它会打破F-Queue中的其他终结吗?
2)我将用Try和Cache包装它 – 我永远不会知道有错误
3)我该怎么办?
编辑
它的MSDN模式基于“如果我忘记**调用dispose方法 – 那么GC最终会做到这一点……后来再好不过……”.所以我的问题是特别关于Finilize中的异常(析构函数)
解决方法 从 MSDN开始:总结Exceptions that occur during destructor execution are worth special mention. If an exception occurs during destructor execution,and that exception is not caught,then the execution of that destructor is terminated and the destructor of the base class (if any) is called. If there is no base class (as in the case of the object type) or if there is no base class destructor,then the exception is discarded.
以上是内存溢出为你收集整理的析构函数中的异常(c#)?全部内容,希望文章能够帮你解决析构函数中的异常(c#)?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)