【发布时间】:2012-11-08 21:07:38
【问题描述】:
调用DirectoryInfo.EnumerateFiles 可以抛出异常,例如DirectoryNotFoundException。这只能在我获取IEnumerable 对象时发生,或者在迭代文件时(即当foreach 调用IEnumerator<FileInfo>.MoveNext 时)?
也就是说,下面的代码安全吗?
IEnumerable<FileInfo> fileInfos;
try
{
fileInfos = directoryInfo.EnumerateFiles();
}
catch // snip
{
// snip
}
foreach (FileInfo fileInfo in fileInfos)
{
// Do something
}
或者我是否也需要将 foreach 部分放入 try 块中(如果我想 yield return 一些东西,这会变得非常讨厌,这在 try 块中是不允许的)?
假设枚举器没有抛出异常,那么在迭代文件时删除目录会发生什么?
【问题讨论】: