即使在使用块中抛出异常,资源也会被丢弃吗?

Dot*_*NET 16 .net c# asp.net exception-handling using-statement

可能重复:
在使用statment中抛出Exception时,是否仍会调用Dispose方法?

using访问数据库时,我有很多块.我想知道 - 如果必须在使用块中抛出异常,是否仍然会处理必要的资源,即使未到达块的末尾?或者我需要在catch块中手动关闭它们吗?

Cod*_*bie 30

using声明定义的资源被处理掉,这using是有利的主要原因.

using语句确保即使在对象上调用方法时发生异常,也会调用Dispose .您可以通过将对象放在try块中然后在finally块中调用Dispose来实现相同的结果; 实际上,这就是编译器如何翻译using语句.
http://msdn.microsoft.com/en-us/library/yh598w02%28v=VS.100%29.aspx