1

私は再帰的な組み込みメソッドを使用しようとしています:

public IEnumerable<string> Foo(string path)
{
    try
    {
        foreach (string file in Directory.EnumerateFiles(path, "*.*", SearchOption.AllDirectories))
        {
            yield return file;
        }
    }
    catch (Exception)
    { }
}

そして、このエラーを受け取りました:

catch 句を含む try ブロックの本体で値を生成できません

try-catchフォルダーのアクセス許可がない場合にメソッドがクラッシュするのを避けるために、 を使用するにはどうすればよいですか?

4

1 に答える 1

1
public IEnumerable<string> Foo(string path)
{
    var files = new List<string>();
    try
    {
      files.AddRange(Directory.EnumerateFiles(path, "*.*", SearchOption.AllDirectories));
    }
    catch (Exception)
    {
       // this is bad style. You should catch more specific exceptions
    }

    return files;
}
于 2013-05-26T09:29:46.723 に答える