c# - net - elmah xmlfileerrorlog




Добавление дополнительной информации в настраиваемое исключение (4)

Я создал настраиваемое исключение для очень конкретной проблемы, которая может пойти не так. Я получаю данные из другой системы, и я поднимаю исключение, если оно бомбит при попытке проанализировать эти данные. В моем обычном исключении я добавил поле «ResponseData», поэтому я могу отслеживать то, что не удалось обработать моим кодом.

В пользовательских исключениях, таких как этот, следует, чтобы дополнительные данные ответа попадали в исключение «сообщение»? Если это произойдет, сообщение может быть огромным. Я вроде как хочу, потому что я использую Элму, и вот как я могу получить эти данные.

Таким образом, вопрос заключается в следующем: - Как я могу заставить Elmah записывать дополнительную информацию из поля в пользовательском исключении ИЛИ - Должны ли дополнительные детали исключения попадать в свойство «сообщение»?


Elmah - это модуль http, который записывает необработанные исключения.

Я думаю, это просто ограничение Elmah, поскольку оно не хранит пользовательские поля. Думаю, мне придется спросить этих парней. У меня есть дополнительное поле для ответов, но Elmah его не хранит.


Я не понимаю вопроса - вы расширяете System.Exception, и вы уже добавили поле Elmah. Вот где он принадлежит - как публичное свойство самого исключения.


Вы не должны заполнять. .Message с отладочной информацией, а скорее кратким, полезным текстом.

http://msdn.microsoft.com/en-us/library/system.exception.message.aspx

Текст сообщения должен полностью описать ошибку и должен, когда это возможно, объяснить, как ее исправить. Значение свойства Message включено в информацию, возвращаемую ToString.

Свойство Message задается только при создании исключения. Если для конструктора текущего экземпляра не было отправлено сообщение, система отправляет сообщение по умолчанию, которое форматируется с использованием текущей культуры системы.

[..]

Примечания для наследующих:

Свойство Message переопределяется в классах, требующих контроля над содержимым или форматом сообщений. Код приложения обычно обращается к этому свойству, когда ему нужно отображать информацию об исключении, которое было обнаружено.

Сообщение об ошибке должно быть локализовано.

Данные ответа не квалифицируются как описание.

Не знакомый с elmah, я не могу сказать вам, как продлить класс Exception при его использовании. Предоставляет ли elmah собственный подкласс Exception ? Или интерфейс? Можете ли вы подклассифицировать его самостоятельно?


Класс Exception содержит словарь (называемый Data, я считаю), который можно использовать для связывания пользовательских данных с ванильным исключением.







elmah