Обрабатывает ли elmah также пойманные исключения

Регистрирует ли ELMAH исключения, даже если они не передаются приложению? Я хотел бы отображать всплывающее сообщение при возникновении исключения и все же регистрировать исключение. В настоящее время я все вставляю в блоки try catch и выкладываю сообщения, но это утомительно.


person Community    schedule 17.09.2008    source источник


Ответы (2)


ELMAH был обновлен для поддержки новой функции, называемой Сигнализация.

Это позволяет вам обрабатывать исключения так, как вы хотите, при этом записывая их в ELMAH.

try
{
    int i = 5;
    int j = 0;
    i = i / j; //Throws exception
}
catch (Exception ex)
{
    MyPersonalHandlingCode(ex);
    ErrorSignal.FromCurrentContext().Raise(ex); //ELMAH Signaling
}

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

Ознакомьтесь с этим отличным руководством DotNetSlackers на ELMAH

person Community    schedule 08.05.2009
comment
Можно ли добиться этого с помощью какого-либо атрибута / фильтра? Я думаю, потому что помещать этот код в каждую ловушку слишком много, было бы неплохо иметь такой фильтр, который бы это делал. - person angularrocks.com; 20.09.2011
comment
По иронии судьбы, ссылка dognetslackers ведет на страницу с необработанной ошибкой. Это должен быть тролль? - person niico; 13.02.2017
comment
вот ссылка на обратную машину на статью DotNetSlackers: http://web.archive.org/web/20140415040316/http://dotnetslackers.com/articles/aspnet/ErrorLoggingModulesAndHandlers.aspx - person XoXo; 02.10.2019

Фильтр - самый чистый способ решить эту проблему. Проверьте это решение здесь, https://stackoverflow.com/a/5936867/965935

person Community    schedule 13.12.2012
comment
Насколько я понимаю, фильтр не сможет поймать исключение, уже обработанное в блоке try catch. Проверьте этот ответ здесь, ссылка. - person frezq; 14.01.2015