【问题标题】:Undocumented exceptions in the .NET Framework.NET Framework 中未记录的异常
【发布时间】:2012-12-26 14:44:51
【问题描述】:

再一次,我很难理解 System.IO.Directory 中方法 GetFiles 的未记录行为(这会让我发疯)。在运行一些例行测试时,我惊讶地发现对该方法的调用引发了 NotSupportedException 类型的异常,而 MSDN page about GetFiles 中没有提到其他异常所在的列表中。

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

Directory.GetFiles(@"XY:");

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

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

【问题讨论】:

  • .NET 4.0 我有Unhandled Exception: System.IO.DirectoryNotFoundException: Directory 'XY:' not found.
  • @HamletHakobyan 我正在运行 Windows 7 x64,我也在 .NET 4.0 中获得了 NotSupportedException

标签: .net exception getfiles undocumented-behavior


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    相关资源
    最近更新 更多