-1

再一次,我正在努力理解该方法的无证行为GetFilesSystem.IO.Directory这会让我发疯)。在运行一些例行测试时,我惊讶地发现对该方法的调用引发了一个类型为 的异常,该异常在MSDN 页面 aboutNotSupportedException中未提及,在其他异常所在的列表中。GetFiles

例如,C# 中的这个调用:

Directory.GetFiles(@"XY:");

抛出一个NotSupportedException. 我的第一印象是文档页面缺少一条信息,但再想一想,我不太确定。我的意思是我一直假设在使用 .NET Framework 类时我需要关心的所有异常都是众所周知的并记录在案的。例如,FileNotFoundException当我加入字符串时,我从来没有为 a 放置一个处理程序,因为我不希望这个异常发生在那里。

我的假设是错误的吗?我是否应该期望至少某些异常可能会从任何地方弹出OutOfMemoryException?我需要阅读任何声明吗?

4

1 回答 1

1

当然,某些类型的异常可能会在没有警告的情况下随时发生(一个很好的例子就是经典的StackOverflowException)。

不过,我将这种特殊情况称为文档错误。的文档NotSupportedException确实提到了System.IO一般的类,并且还说该HRESULTCOR_E_NOTSUPPORTED转换为所述异常类型。我不确定要求将PInvoked 代码导致的每个可能的错误结果都明确列为可能的异常类型是否合理,但这似乎是这里发生的事情。

于 2013-01-11T23:05:52.850 回答