2012-06-10 2 views
3

На экзамене .NET я столкнулся с этим вопросом.Как поймать необработанные исключения в приложении asp.net?

Какое из следующих действий вы можете использовать для обнаружения необработанных исключений в приложении?

  • Server_Error
  • Page_Error
  • Application_Error
  • Response_Error
  • OnError событие

Я знаю его Application_Error, Но то, что я хочу знать, какие другие. По некоторым поискам Google я обнаружил, что OnError может использоваться для обнаружения любых ошибок. Тем не менее я не уверен в этом. Не могли бы вы рассказать, какие другие способы поймать необработанное исключение?

ответ

8

Правильная точка для обнаружения неизвестных ошибок - Application_Error.

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

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

Чтобы дать резюме, попробуйте поймать все свои ошибки внутри блока try/catch и дать сообщение своему пользователю/или просто позаботиться об этих проблемах, но пусть неизвестные ошибки глобальному ловушку будут регистрироваться и исправить. Неизвестные ошибки - это то, что заставляет вас потерять реальный контроль над вашей программой, и на самом деле вы не знаете, что делать, потому что вы этого не предсказываете, поэтому запишите его и исправьте в следующий раз.

Подробнее о ошибки: How do I make a "generic error" page in my ASP.NET application so that it handles errors triggered when serving that page itself?

Смежные вопросы