致电DirectoryInfo.EnumerateFiles
可能会抛出异常,如DirectoryNotFoundException
。只有当我获取IEnumerable
对象时,或者在迭代文件时(即当foreach
调用IEnumerator<FileInfo>.MoveNext
时),才会发生这种情况吗?迭代DirectoryInfo.EnumerateFiles是否会抛出异常?
换句话说,下面的代码是否安全?
IEnumerable<FileInfo> fileInfos;
try
{
fileInfos = directoryInfo.EnumerateFiles();
}
catch // snip
{
// snip
}
foreach (FileInfo fileInfo in fileInfos)
{
// Do something
}
或者我需要把部分的foreach进入try块,太(成为如果我想很讨厌到yield return
东西,这不是在try块允许的)?
假设枚举器不会抛出异常,在迭代文件时删除目录时会发生什么?