【问题标题】:Equivalent to Windows Error Codes in .NET等效于 .NET 中的 Windows 错误代码
【发布时间】:2011-05-01 23:51:22
【问题描述】:

Microsoft 为 Windows 提供了一堆标准化的错误代码 (http://msdn.microsoft.com/en-us/library/ms681381(VS.85).aspx)。当适用时,我发现它们在我自己的应用程序中参考很有用,而不是创建我自己的应用程序。有没有类似但特定于 .NET 的东西?

【问题讨论】:

    标签: .net windows error-code


    【解决方案1】:

    .NET 不鼓励使用错误代码。相反,应专注于使用或派生自标准 Exception 类。

    在 .NET 开发中,应该优先使用异常而不是错误代码。

    【讨论】:

    • 好的,这是有道理的。但是,我们这样做的部分原因是为了我们的服务部门;因此他们可以拥有系统可以生成/抛出的所有错误代码/消息的列表。鉴于此,有没有比使用字符串资源更好的方法?有没有办法进行反射(异常或其他)以获得错误列表?
    • 异常的优点是允许开发者提供异常的上下文。您可以在自定义异常中包含资源的特定枚举值,也可以包含全文字符串说明,帮助您缩小发生的位置和发生的范围。
    • 当然,我很感激。他们只需要一份可能遇到的问题的列表,以便他们可以在接到客户电话之前查看并提出问题。也许这应该作为一个单独的问题提出,但能够获得潜在错误消息的列表仍然是可取的。
    • 看起来在这个问题上有一些相反的意见:stackoverflow.com/a/2555307/172074。我会亲自处理异常
    • .NET 可以“阻止”它喜欢的一切,Windows 中仍有一些地方需要它们。例如我正在为 MSI 编写一个自定义操作脚本,如果它失败,它必须向 msiexec 返回一个非零退出状态 - 这是一个普通的旧数字,无法传达异常上下文。如果出现问题,我需要综合 ERROR_INSTALL_FAILURE(来自 msi.h 的 1603L) - 很难相信建议是在我的 PS1 代码中放置一个明确的数字常量。
    【解决方案2】:

    我同意 Reed Copsey 的观点,错误代码是过去错误处理方法的“残余”。

    新的 i 操作方式是Exception Handling

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      相关资源
      最近更新 更多