【问题标题】:Where are Windows error constants defined?Windows 错误常量在哪里定义?
【发布时间】:2015-08-27 13:49:59
【问题描述】:

我正在构建一个 C# 项目,但在某个时候我遇到了一个异常 ErrorCode

try {
   ...
} catch (HttpListenerException e) {
   if (e.ErrorCode == 995) {
   }
}

这行得通,但我想让我的代码更具可读性以及避免“魔法常量”是这样的(使用error code names):

try {
   ...
} catch (HttpListenerException e) {
   if (e.ErrorCode == ERROR_OPERATION_ABORTED) {
   }
}

我怎样才能做到这一点?

【问题讨论】:

标签: c# error-handling


【解决方案1】:

.NET Framework 中没有内置任何内容。但是,您可以从here 下载完整的错误代码类。它是一个 C# 类,包含 C# 中错误代码的完整列表。它包含在一个文件中。

将此文件添加到您的项目中,您应该可以执行以下操作:

using Microsoft.Win32.Interop;

...
...

try {
    ...
    ...
} catch (HttpListenerException e) {
    if (e.ErrorCode == WinError.ERROR_OPERATION_ABORTED) {
        // Do something
    }
}

编辑

上面的链接现在好像失效了,所以我添加了 JetBrains 版本的链接。可以看here

【讨论】:

  • 包含的链接已失效。你知道这个类被镜像的地方吗?
  • @Brian - JetBrains 有一个相当不错的版本here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
相关资源
最近更新 更多