我见过很多次这样的事情:
try
{
//something
}
catch (FileNotFoundException e)
{
e.Data.Clear(); // <- WTF?
}
据我所知这是无用的伏都教,但如果我错了请纠正我。
答案 0 :(得分:4)
.Net中的例外情况允许您通过将任意数据放入Data
Exception
成员中来将其与之关联起来。它本质上是一个弱类型字典,它进行最少的检查以确保存储的信息是可序列化的。
此特定功能只是清除所有自定义关联数据。为什么有点神秘,因为开发人员没有留下任何评论。
至于这是否无用。在所有可能的引擎盖是的。这可能有用的一个特定情况是,FileNotFoundException
的创建者都添加了对Data
包的对象引用,并且本身保留了FileNotFoundException
实例的引用。在该特定情况下,调用Clear
可以通过删除对应该是短暂的对象的引用来防止内存泄漏。我发现这种情况不太可能发生。我的直觉是提交错误/删除它。