【发布时间】:2012-08-15 07:24:56
【问题描述】:
我有一个类似下面的代码用于处理 TextWriter 流。
TextWriter TR = new StreamWriter(@"")
try
{
//Logic
}
catch (Exception exception)
{
//Error Reporting
}
finally
{
if (TR != null)
TR.Close();
}
我的 .Net 版本是 4.0,此代码在 Windows 7 上正常运行,但在 Windows XP 中无法正常运行!!似乎流没有关闭,并且许多缓冲区没有写入文件!我不知道!谁能帮我解决这个问题?
【问题讨论】:
-
也许不是一个直接的解决方案,但也请查看
using关键字以获得更优雅的代码:) -
详细信息“流未关闭”-其他代码可以打开或删除吗?
-
看看你的代码,听起来更像是逻辑部分出了问题,它在完成之前就放弃了
-
正如其他人所建议的,您应该尝试使您的代码更加健壮(例如,通过使用
using)。再举一个例子,if (TR != null)条件永远不会是false,因为如果上面的StreamWriter的ctor 抛出,你永远不会到达那个代码(当然,除非你在代码中的某个地方将它设置为null,你没有显示)。
标签: c# .net io try-catch-finally