いくつかのコードがあり、System.UnauthorizedAccessException およびその他の例外をキャッチできるようにしたいのですが、期待どおりに機能していないようです。
コードは次のとおりです。
public IEnumerable<string> GetFilesToShred(string xmlDirectory)
{
try
{
return Directory.GetFiles(xmlDirectory, "*.xml");
}
catch (Exception ex)
{
Log.Error("Could not retrieve list of files to shred: " + ex.Message, ex);
return null;
}
}
このコードに、ユーザーがアクセスできない xml ディレクトリを指定すると、catch ステートメントがスキップされ、スタックのさらに上に例外がスローされます。
私が間違っているかもしれないことは何ですか?
更新: 要求に応じて、以下の完全なスタック トレースを見つけてください。
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)
at System.IO.StreamReader..ctor(String path, Boolean detectEncodingFromByteOrderMarks)
at XmlShredder.ShredderGateway.ShredAndWrite(String XmlDirectory, IEnumerable`1 XmlInputFiles, String outputDirectory, Boolean isDebug) in c:\Dev\XmlShredder\XmlShredder\ShredderGateway.cs:line 102
これが答えるのにもっと役立つことを願っています。