致電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塊允許的)?
假設枚舉器不會拋出異常,在迭代文件時刪除目錄時會發生什麼?