c#-如果using语句内引发异常,清理逻辑是否仍会被调用?
作者:互联网
我对使用using关键字有一些疑问.我有以下代码:
try {
using (System.Net.WebResponse response = httpWebRequest.GetResponse()) {
throw new Exception("Example");
}
}
catch ( Exception ex ) {
}
我的问题是,异常发生时会关闭连接吗?还是我必须关闭鱼钩内的连接?
解决方法:
是的,它将关闭连接.
使用的全部要点是,即使您通过使用例外,它也会在您离开使用范围时处置该对象.
use块是在后台使用try / finally块实现的.
这也很容易进行实验测试:
public class Foo : IDisposable
{
public void Dispose()
{
Console.WriteLine("I was disposed!");
}
}
private static void Main(string[] args)
{
try
{
using (var foo = new Foo())
throw new Exception("I'm mean");
}
catch { }
}
输出为:
I was disposed!
标签:try-catch,httpwebrequest,using-statement,c,winforms 来源: https://codeday.me/bug/20191031/1973938.html