Как отловить ошибку, которая даже не перехватывается переопределением OnException? - PullRequest
3 голосов
/ 06 января 2010

Итак, у нас есть базовый контроллер, который содержит переопределение OnException, которое регистрирует ошибку в нашем инструменте отслеживания ошибок. Однако я заметил, что некоторые ошибки никогда не делают это, и я задаюсь вопросом, глупо ли ожидать, что приложение будет регистрировать все свои собственные ошибки, когда само по себе имеет ошибку, которая может привести к тому, что некоторые ошибки никогда не будут обнаружены ..? В любом случае, какое решение лучше, или всегда следует ожидать OnException? Должен ли я ставить какой-то инструмент на Windows Server для регистрации ошибок, а не внутри самого приложения?

Ответы [ 2 ]

2 голосов
/ 06 января 2010

Событие Controller.OnException может перехватывать только те события, которые выброшены в области действия выполняемого контроллера. Существуют события, которые происходят до того, как http-запрос сопоставлен с контроллером, и событие OnException не будет захватывать эти события. Например, если у вас есть фабрика контроллеров, которая отображает RequestContext на конкретный контроллер, то выброшенное здесь исключение не входит в область действия контроллера.

В событии global.asax.Application_Error необходимо реализовать обработчик исключений «отказоустойчивый».

2 голосов
/ 06 января 2010

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

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

Я также в global.asax добавил код к событию Application_Error, который выполняет небольшую регистрацию, а также вызывает контроллер ошибок для обработки фактической ошибки.

Надеюсь, это каким-то образом поможет вам. Если вы хотите какой-либо код, который я упомянул, добавьте комментарий к этому ответу, и я предоставлю. кода тоже не много.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...