Практическое руководство. Обработка ошибок на уровне страницы
Обновлен: Ноябрь 2007
По возможности следует обрабатывать ошибки в блоках Try/Catch внутри кода, поскольку проблемы проще устранять в момент их обнаружения. Если пользователь может помочь в исправлении ошибки, необходимо вернуть страницу к тому же месту, чтобы пользователь лучше понимал контекст выполняемых действий.
Обработчик на уровне страницы возвращает к странице с ошибкой, однако нужные данные на ней отсутствуют, поскольку не создан экземпляр элементов управления. Чтобы пользователь получил какую-либо информацию, ее необходимо специально записать на странице.
Для записи необработанных ошибок можно использовать обработчик ошибок на уровне страницы или можно представить вниманию пользователя страницу с нужной информацией.
В следующем примере кода показан обработчик событий Error на веб-странице ASP.NET. Данный обработчик собирает все исключения, не обработанные в рамках блоков Try/Catch на странице.
После обработки ошибки необходимо удалить ее, вызвав метод ClearError объекта Server (класс HttpServerUtility).
Пример
Этот обработчик выполняет фильтрацию определенных типов исключений. В случае исключений ArgumentOutOfRangeException обработчик записывает определенный текст на странице, предоставляет ссылку на эту страницу, записывает ошибку и оповещает системных администраторов. При возникновении исключения InvalidOperationException обработчик просто передает исключение на универсальную страницу ошибки. Обработчик не выполняет каких-либо действий в отношении других видов исключений, что позволяет узлу автоматически перейти на универсальную страницу, указанную в файле Web.config. Собственный код разработчика выполнит фильтрацию исключений, представляющих важность для приложения.
Следующий пример является частью завершенного кода в разделе Пример обработчиков ошибок
Безопасность
Разрешите отображения подробных сообщений об ошибках только для локальных пользователей с помощью элемента <customErrors> Element.
Не следует отображать сведения об ошибке, которые могут помочь злоумышленным пользователям повредить данное приложение. Дополнительные сведения см. в разделе Практическое руководство. Отображение безопасных сообщений об ошибках.
См. также
Задачи
Практическое руководство. Обработка ошибок на уровне приложения