【发布时间】:2016-05-30 23:51:50
【问题描述】:
List<string> errorLog = new List<string>();
foreach (DirectoryInfo dir in directories)
{
try
{
dir.Delete(true);
}
catch (System.IO.IOException msg)
{
code = 5;
errorLog.Add(String.Concat(dir.FullName, " ", msg.Message));
Console.WriteLine("Error Removing the directory: {0}", dir.FullName);
}
}
我有一个for each 循环,它将遍历目录列表并删除它们,但保留父目录。如果发生错误,我想记录它。我创建了一个list 并在catch 中添加了错误。最后,我可以检查 errorLog 列表的长度,如果它大于零,我可以打印它们。我已经看到他们在 catch 中调用 using 和 streamwriter 的帖子,但是如果在编写错误日志时发生了什么会发生什么?
我正在做的事情被认为是不好的做法吗?如果是这样,我该怎么办?
【问题讨论】:
-
登录到控制台不是很好,我至少会登录到一个文本文件。您正在开发什么类型的应用程序?如果它是基于 Web 的应用程序,我会使用 log4net 之类的日志记录包或类似的东西。如果您有可用的数据库,我会登录到数据库。记录到文件或数据库使查看日志变得更加容易,并且在一天结束时,您可以创建日志以在出现问题时查看它们,越快越好。
-
@JeffFinn - 一个简单的命令行应用程序。我确实输出到文本文件。当 for each 完成后,如果错误日志大于 0,我将写入一个文本文件。
标签: c# error-handling try-catch