如果在使用语句中遇到未处理的异常,是否可以调用IDispose?

Jud*_*das 6 c# using-statement

如果我有以下内容,仍然会在DisposeableObject上调用IDisposeable,还是会因为遇到未处理的异常而保持打开对象?

using ( DisposeableObject = new Object() )
{
   throw new Exception("test");
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*our 5

A using就像把你的代码包装在一个try...finally并在最后处理,所以是的,它应该被调用.


Dav*_*vid 0

根据 MSDN 的说法,是的。当控制离开语句的范围时using,期望它被释放。