C# "Using"语法

标签 c# exception using using-statement

using 是捕获异常还是抛出异常?即

using (StreamReader rdr = File.OpenText("file.txt"))
{
 //do stuff
}

如果 streamreader 抛出一个异常,它是被 using 捕获还是被抛出以便调用函数可以处理它?<​​/p>

最佳答案

当您看到 using 语句时,请考虑以下代码:

StreadReader rdr = null;
try
{
    rdr = File.OpenText("file.txt");
    //do stuff
}
finally
{
    if (rdr != null)
        rdr.Dispose();
}

所以真正的答案是,除了在 using block 的主体中​​抛出的异常,它什么都不做。它不处理它或重新抛出它。

关于C# "Using"语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/149609/

相关文章:

c# - 发送静态方法+参数作为参数

c# - 如何使用 dataGridView 显示全屏网格

java - 如何从方法中正确处理异常?

c++ - 为什么 `using A::f` 没有按预期工作?

c# - 是否有比嵌套 "using"更好的确定性处置模式?

c++ - 在 C++ 中如何声明 std::array 的别名?

c# - 在 C# 中继承泛型的一个很好的理由

c# - FluentValidation - 如何在运行时自定义验证消息

java - 特定异常与异常

c# - 向 ASP.NET Web 应用程序添加顶级异常处理