ELMAH - передать переменную, а другой текст? - PullRequest
2 голосов
/ 25 марта 2010

Я только начал играть с ELMAH.

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

В настоящее время я использую это: ErrorSignal.FromCurrentContext () Raise (е).

Ответы [ 5 ]

4 голосов
/ 22 января 2012

Вы можете включить объект исключения в свое пользовательское сообщение, например:

ErrorSignal.FromCurrentContext().Raise(new Elmah.ApplicationException(Message,ex));

Как видно на http://blog.omniaconnect.net/2009/07/30/using-a-static-class-for-logging-exceptions-using-elmah/

1 голос
/ 15 февраля 2011

Переменная зависит от контекста исключения? Или это глобально (значение сеанса?) Если это зависит от контекста, вы можете просто попробовать перехватить и перенаправить исключение с пользовательским сообщением вручную в Elmah.

редактировать: фрагмент ... .Raise (новое исключение ("Ваше пользовательское сообщение со значением переменной"));

0 голосов
/ 22 февраля 2011

Отстойно, что вы в основном застряли с передачей строк в elmah, но это то, на чем основаны исключения, когда вы добираетесь до сути (по крайней мере, как большинство программистов справляются с ними). ​​

Что я делаю, это просто создаю пользовательские сообщения, которые имитируют объект, вроде:

Произошла ошибка в Class.MethodName при установке клиента и т. Д., А затем введите существующее исключение.

0 голосов
/ 21 февраля 2011

Я выбрасываю новое исключение, содержащее данные, используя параметр innerexception, чтобы содержать исходное исключение.

0 голосов
/ 15 февраля 2011

Один из способов сделать это - немного расширить elmah, чтобы он копировал сеанс. Базовая реализация обозначена здесь . Эта функция, похоже, не реализована в 1.2 (все еще в бета-версии), но я могу ошибаться.

...