cuốn sách gpt4 ai đã làm

c# - 为什么 'using' 没有 catch block ?

In lại Tác giả: Hồ Xil 更新时间:2023-11-01 08:50:18 25 4
mua khóa gpt4 Nike

我理解“使用”的意义在于保证调用对象的 Dispose 方法。但是应该如何处理“using”语句中的异常呢?如果出现异常,我需要将我的“using”语句包装在 try catch 中。例如:


假设在使用参数内部创建对象时产生了异常

 thử
{
// Exception in using parameter
using (SqlConnection connection = new SqlConnection("LippertTheLeopard"))
{
connection.Open();
}
}
catch (Exception ex)
{

}

或使用范围内的异常

 using (SqlConnection connection = new SqlConnection())
{
thử
{
connection.Open();
}
catch (Exception ex)
{

}
}

似乎如果我已经需要用 try catch 处理异常,也许我也应该处理对象的处置。在这种情况下,“使用”语句似乎根本帮不了我。如何使用“using”语句正确处理异常?有没有我缺少的更好的方法?

 SqlConnection connection2 = null;
thử
{
connection2 = new SqlConnection("z");
connection2.Open();
}
catch (Exception ex)
{

}
finally
{
IDisposable disp = connection2 as IDisposable;
if (disp != null)
{
disp.Dispose();
}
}

“using”关键字语法可以更甜一点吗……
如果有这个就好了:

 using (SqlConnection connection = new SqlConnection())
{
connection.Open();
}
catch(Exception ex)
{
// What went wrong? Well at least connection is Disposed
}

câu trả lời hay nhất

因为您会在不相关的关键字中“隐藏”额外的功能。

但是你总是可以这样写

using (...) try
{
}
catch (...)
{
}

这样这条线就代表了你的意图——一个 using 语句也是一个 try

关于c# - 为什么 'using' 没有 catch block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1724931/

25 4 0
Bài viết khuyến nghị: c# - 学习.NET
Bài viết khuyến nghị: android - 在 KitKat 中获取 SMS 访问权限
Bài viết khuyến nghị: c# - 全屏模式,但不要覆盖任务栏
Bài viết khuyến nghị: c# - 它可以返回null吗? (this.Result ==Result.OK)
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress