我正在创建一个删除子目录/文件的命令行实用程序.如果正在使用文件,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); } }
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 // }
这样,您可以记录错误以便稍后查看,但仍会处理您尝试处理的其余内容.
不,这可能非常有用.例如:如果您不想在抛出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 // }
这样,您可以记录错误以便稍后查看,但仍会处理您尝试处理的其余内容.