-1

GetFiles繰り返しになりますが、メソッドの文書化されていない動作を理解するのに苦労していますSystem.IO.Directory(これには気が狂いそうです)。いくつかの定期的なテストを実行しているときに、驚いたことに、このメソッドの呼び出しが type の例外をスローしていることがわかりました。これは、 MSDN の についてのページNotSupportedExceptionには記載されていませんが、他の例外があるリストにあります。GetFiles

たとえば、C# での呼び出しは次のとおりです。

Directory.GetFiles(@"XY:");

をスローしNotSupportedExceptionます。私の最初の印象は、ドキュメンテーション ページに情報が欠けているということでしたが、もう一度考えてみるとよくわかりません。つまり、.NET Framework クラスを使用するときに注意する必要があるすべての例外は、よく知られており、文書化されていると常に想定してきました。たとえば、FileNotFoundException文字列を結合するときに a のハンドラーを配置することはありません。この例外がそこで発生するとは思わないからです。

私の仮定は間違っていますか?少なくとも特定の例外が のような場所から飛び出す可能性があると予想する必要がありOutOfMemoryExceptionますか 私が読む必要がある声明はありますか?

4

1 に答える 1

1

確かに、警告なしにいつでも発生する可能性のあるいくつかのタイプの例外があります (良い例はクラシックStackOverflowExceptionです)。

ただし、この特定のケースをドキュメントのバグと呼びます。のドキュメントでNotSupportedExceptionは、一般的にクラスについて言及しており、値が上記の例外タイプに変換されるSystem.IOことも述べています。PInvoked コードから発生する可能性のあるすべてのエラーを、考えられる例外の種類として明確にリストするよう求めることが合理的かどうかはわかりませんが、それがここで起こっているようです。HRESULTCOR_E_NOTSUPPORTED

于 2013-01-11T23:05:52.850 に答える