Добавление перечислимых значений для записи в журнал событий - PullRequest
3 голосов
/ 16 июня 2009

При записи в журнал событий наше приложение использует перечисления для генерации номера ошибки для прикрепления к элементам журнала событий. Идея состоит в том, чтобы перечислить вещи, которые, как мы знаем, могут пойти не так, и назначить идентификаторы каждому из них, чтобы мы могли сразу определить, что пошло не так при просмотре журнала событий.

Одно перечисление содержит значения / идентификаторы, которые представляют класс в приложении, а другое перечисление содержит значения, представляющие коды ошибок для известных ошибок, которые могут возникнуть во время выполнения (например, неверная дата = 1, неверное количество = 2 и т. Д.).

Теперь, скажем, мы обнаружили неверный вход для метода. Мы добавляем соответствующий идентификатор класса, который содержит метод из одного перечисления, и конкретную ошибку «неверный ввод» из второго перечисления, а затем передаем результат добавления в метод EventLog.WriteEntry () вместе со строкой сообщения. .

Проблема в том, что когда мы передаем переменную, содержащую результат добавления значений перечисления, в метод WriteEntry (), в журнал событий ничего не записывается. Однако если значение передается как обычное целое число в параметрах метода, то событие записывается успешно.

Кто-нибудь знает, почему это происходит?

Ответы [ 2 ]

1 голос
/ 16 июня 2009

Сделайте два звонка в ваш журнал событий в ваш код, например, что-то вроде:

EventLog.WriteEntry(1005);
EventLog.WriteEntry(MethodIDs.FirstMethod + ErrorIDs.FifthError);

Поставьте точку останова в первой строке, запустите программу, а затем пошагово выполните оба вызова функции, наблюдая за тем, что происходит.

Вы, вероятно, найдете проблему в течение нескольких секунд.

0 голосов
/ 16 июня 2009

зачем вы используете перечисления для тех или иных случаев?

Разве не имеет смысла использовать расширения для исключений?

например. throw new InvalidArgumentException("error message")

...