抛出ObjectDisposedException时,应该作为objectName传递什么?
在实现IDisposable时,我承诺在对象被处理后不应该调用的每个方法都应该抛出ObjectDisposedException
。 但是,应该传递给exception的构造函数的name对象的标准是什么?
我相信推荐的做法是抛出以下内容:
throw new ObjectDisposedException(GetType().FullName);
或者包括检查,这两行代码在每个方法的顶部需要它(显然不是Dispose
方法本身):
if (this.disposed) throw new ObjectDisposedException(GetType().FullName);
甚至可能有助于将其重构为可用性的微小方法。
即使是.NET框架本身在这里也不是很一致。
David M. Kean(Microsoft的FxCop团队的前开发人员) 为ObjectDisposedException的MSDN文档添加了一条评论:
这种types的典型用法如下所示:
[C#] private void CheckDisposed() { throw new ObjectDisposedException(GetType().FullName); }
我不相信这是一个标准,我会返回对象的types以及唯一标识字段的string内容(“主键”)。