【发布时间】:2009-07-07 08:38:28
【问题描述】:
如果ExecuteReader 抛出异常,我如何确保在以下代码sn-p 中处理IDataReader?
using (IDataReader rdr = cmd.ExecuteReader())
{
// use it
}
using 语法糖不调用 Dispose 对我来说是有道理的(因为没有实例可以调用它)。但是,如何确定通常由实现 IDisposable 的类分配的稀缺资源将被释放?
【问题讨论】:
-
如果 ExecuteReader 抛出异常,IDataReader 为空,不需要处理。 ExecuteReader 内部的非托管资源需要清理,应该在自己的 finally 块中处理。
标签: c# exception dispose idisposable