我有以下代码:
try{
using (StreamReader reader = new StreamReader(...), Encoding.ASCII)){
// Code that can throw an exception
}
}catch (Exception error){
// Display error...
}
如果 using
block 中抛出异常,StreamReader
会发生什么?
我应该在关闭流的地方添加一个 finally
子句吗?
最佳答案
StreamReader 将由 using 自动处理,因为它本质上是一个嵌套的 try/finally:
try{
StreamReader reader = new StreamReader(...), Encoding.ASCII);
try {
// Code that can throw an exception
} finally {
reader.Dispose();
}
} catch (Exception error) {
// Display error...
}
关于c# - 来自 using block 的异常抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9709884/