.NET Framework中的未记录的异常

时间:2013-01-11 22:53:26

标签: .net exception getfiles undocumented-behavior

再次,我正在努力理解GetFiles中方法System.IO.Directory的未记录行为(这会让我发疯)。在运行一些例行测试时,我惊讶地发现,对此方法的调用抛出了NotSupportedException类型的异常,MSDN page about GetFiles中未提及该异常,其他例外是

例如,在C#中进行此调用:

Directory.GetFiles(@"XY:");

抛出NotSupportedException。我的第一印象是文档页面缺少一条信息,但在再次思考之后,我并不确定。我的意思是我一直在假设在使用.NET Framework类时我需要关注的所有异常都是众所周知的并且有文档记录。 例如,当我加入字符串时,我从未为FileNotFoundException添加处理程序,因为我不希望在那里发生此异常。

我的假设是错的吗?我是否应该期望至少某些例外情况可能会像OutOfMemoryException那样突然出现?我需要阅读的任何陈述?

1 个答案:

答案 0 :(得分:1)

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

我将这个特殊情况称为文档错误。 NotSupportedException的文档确实提到了System.IO类,并且还说HRESULTCOR_E_NOTSUPPORTED转换为所述异常类型。我不确定是否有理由要求将 PInvoked代码的每个可能的错误结果清楚地列为可能的异常类型,但这就是这里似乎发生的事情。