2015-08-27 5 views
3

Я строю C# проект и в какой-то момент я столкнуться с ErrorCode в виде исключения:Где указаны константы ошибок Windows?

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

это работает, но то, что я хочу, как сделать мой код более удобным для чтения, а также, чтобы избежать «магические константы », это что-то вроде этого (с помощью error code names):

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

Как я могу добиться этого?

+0

Вы ищете библиотеку или функцию, которая содержит [Системные коды ошибок] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms681381 (v = vs +0,85) .aspx)? или только эта связанная страница? – Sayse

+1

Библиотека или функция, которая их содержит. –

+2

[Соответствующий: Получение названия системы Windows System Code/описание] (http://stackoverflow.com/q/1650838/1324033) – Sayse

ответ

2

В .NET Framework ничего не встроено. Но вы можете загрузить полный код кода ошибки с here. Это класс C#, который содержит полный список кодов ошибок в C#. Он содержится в одном файле.

Добавить этот файл в ваш проект, и вы должны быть в состоянии сделать что-то вроде этого:

using Microsoft.Win32.Interop; 

... 
... 

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

EDIT

выше ссылку, кажется, мертв, поэтому я добавляю ссылку к версии JetBrains. Вы можете видеть это here

+0

Включенная ссылка мертва. Знаете ли вы, что этот класс зеркалирован? – Brian

+0

@Brian - JetBrains имеет довольно хорошую версию [здесь] (http://svn.jetbrains.org/omeaopen/trunk/Omea/Src/Core/Interop.WinApi/src/Declarations/Constants/WinError.cs) – Icemanind

Смежные вопросы