На экзамене по .NET я столкнулся с этим вопросом.
Что из перечисленного можно использовать для перехвата необработанных исключений в приложении?
- Server_Error
- Page_Error
- Application_Error
- Response_Error
- событие OnError
Я знаю его Application_Error, но я хочу знать, что это за другие. Некоторым поиском в Google я обнаружил, что OnError можно использовать для обнаружения любых ошибок. Тем не менее, я не уверен в этом. Не могли бы вы сказать, каковы другие способы перехвата необработанного исключения
Правильный момент для перехвата неизвестных ошибок — это Application_Error
.
Избегайте захвата OnError на вашей странице и позвольте системе передать его Application_Error, потому что вы потеряли контроль на странице, так что еще вы можете сделать, если не передать его на какую-то страницу с ошибкой? — если вы попытаетесь просто перезагрузить его, проблема заключается в том, что вы находитесь в закрытом цикле, который может вызвать переполнение стека.
По моему опыту, у меня возникают проблемы, когда я пытаюсь обрабатывать ошибки с помощью страницы OnError
, и я использую его только тогда, когда мне нужно освободить некоторую глобальную память, или что-то в этом роде, если на странице происходит ошибка.
Чтобы подвести итог, попробуйте поймать все ваши ошибки внутри блока try/catch и дать сообщение вашему пользователю/или просто позаботиться об этих проблемах, но позвольте неизвестным ошибкам глобальному улавливателю зарегистрировать их и исправить. Неизвестные ошибки — это то, из-за чего вы теряете реальный контроль над своей программой, и на самом деле вы не знаете, что делать, потому что не можете предсказать их — так что зарегистрируйте и исправьте в следующий раз
Подробнее об ошибках: как мне создать страницу с «общей ошибкой» в моем приложении ASP.NET, чтобы она обрабатывала ошибки, возникающие при обслуживании самой страницы?