を呼び出す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 ブロックに入れる必要がありますか (try ブロックでyield returnは許可されていない何かが必要な場合、これは非常に厄介になります)。
列挙子が例外をスローしないと仮定すると、ファイルの反復処理中にディレクトリが削除されるとどうなりますか?