Будет ли OnError в HttpModule заменять любую существующую обработку ошибок?

Мне было поручено создать своего рода глобальное решение для обработки ошибок, поэтому я создаю HttpModule для добавления в существующее решение ASP.NET. Иногда эти существующие веб-приложения будут иметь собственную обработку ошибок (try/catch), которая может делать что-то конкретное.

ВОПРОС Когда приложение сталкивается с исключением, сохраняется ли OnError в моем HttpModule срабатывании, поскольку оно имеет более глобальный масштаб, чем конкретная попытка/перехват внутри приложения? Будет ли это гореть каждый раз? Будет ли OnError перехватывать каждое отдельное исключение приложения, обработанное И необработанное? Когда я говорю «обработано», я имею в виду, что если ошибка уже «обработана» в каком-то разделе моего кода где-то в моем приложении, попадет ли она в OnError?


person Mike Marks    schedule 15.11.2013    source источник


Ответы (1)


Ваш HttpModule будет получать только те исключения, которые не перехвачены приложением, например четко указано в документации

Если код, выдающий исключение, находится внутри блока try...catch, нет никакого исключения, которое нужно передать глобальному обработчику ошибок.

Если вы обрабатываете исключение и хотите подавить сообщение об ошибке ASP.NET по умолчанию, вы можете сделать это с помощью ClearError.

Если вы действительно хотите знать обо всех исключениях, вы можете использовать FirstChanceException в событии AppDomain, чтобы получить уведомление непосредственно при обнаружении исключения. Тем не менее, вы, вероятно, поймаете гораздо больше исключений, чем ожидаете, - многие исключения выбрасываются и изящно обрабатываются в рамках.

person Anders Abel    schedule 15.11.2013