Правильная точка для обнаружения неизвестных ошибок - 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?