Emm*_*een 5 c# for-loop try-catch
我正在创建一个删除子目录/文件的命令行实用程序.如果正在使用文件,System.IO.IOException则抛出该文件.我在for循环中使用了try-catch块.
题:
1.在for循环中有一个try-catch是不好的做法吗?
2.如果是,什么是更好的选择?
我的代码:
System.IO.DirectoryInfo di = new DirectoryInfo(path);
foreach (FileInfo file in di.GetFiles())
{
try
{
file.Delete();
}
catch(System.IO.IOException)
{
Console.WriteLine("Please Close the following File {0}", file.Name);
}
}
Run Code Online (Sandbox Code Playgroud)
mac*_*mac 14
不,这可能非常有用.例如:如果您不想在抛出Exception时完全停止循环,或者由于Exception而无法为当前迭代运行额外的代码,您可以执行以下操作.
System.IO.DirectoryInfo di = new DirectoryInfo(path);
foreach (FileInfo file in di.GetFiles())
{
try
{
file.Delete();
}
catch(System.IO.IOException)
{
Console.WriteLine("Please Close the following File {0}", file.Name);
continue;
}
//
// Other Code
//
}
Run Code Online (Sandbox Code Playgroud)
这样,您可以记录错误以便稍后查看,但仍会处理您尝试处理的其余内容.