Проф. В.К.Толстых, www.tolstykh.com Технологии разработки Internet- приложений ASP.NET приложения – обработка ошибок страниц и приложения, Global.aspx.

Презентация:



Advertisements
Похожие презентации
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Модули HTTP, фильтры, события приложения - Global.asax.
Advertisements

Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – пользовательские элементы управления Из цикла лекций.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – локализация ресурсов приложения Из цикла лекций «Технологии.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET примеры: обработка данных форм. работа с формами работа с формами.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – директивы Из цикла лекций «Технологии разработки Internet-приложений»
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – валидация, валидационные элементы управления Из цикла.
Проф. В.К.Толстых, Технологии разработки Internet- приложений Delphi for.NET примеры: работа с файлами Из цикла лекций «Технологии разработки.
Проф. В.К.Толстых, Технологии разработки Internet- приложений Эталонные страницы – Master pages Из цикла лекций «Технологии разработки.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET примеры: HtmlControls Из цикла лекций «Технологии разработки Internet-приложений»
Проф. В.К.Толстых, Пример Web-службы Калькулятор с валидацией Из цикла лекций «Internet-технологии разработки приложений» для студентов.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – элементы управления HTML Из цикла лекций «Технологии.
Проф. В.К.Толстых, Технологии разработки Internet- приложений Администрирование IIS 5, 6 сайт, виртуальный каталог, приложение, пул, рабочий.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET примеры: динамические таблицы, привязка данных к выпадающему списку.
ДонНУ, кафедра КТ, проф.В.К.Толстых Технологии разработки Internet- приложений ASP.NET приложения: Безопасность – аутентификация Из цикла лекций «Технологии.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – ASP.NET-процесс, пул, домен приложения, компиляция,
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – оптимизация скорости работы приложений Из цикла лекций.
Проф. В.К.Толстых, Выполнил студент: Тышлек С.В., 2009 Технологии разработки Internet- приложений Из цикла лекций «Технологии разработки.
ДонНУ, кафедра КТ, проф.В.К.Толстых WCF-службы Создание и тестирование.dll-библиотеки WCF-служб Из цикла лекций «Internet-технологии разработки приложений»
ДонНУ, кафедра КТ, проф.В.К.Толстых Web-службы (Web-сервисы) введение введение Разработка в среде Delphi Из цикла лекций «Internet-технологии разработки.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – класс Control Из цикла лекций «Технологии разработки.
Транксрипт:

проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – обработка ошибок страниц и приложения, Global.aspx Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета

Вывод информации об ошибках Ошибки, которые трудно предупредить в ходе функционирования приложения, целесообразно контролировать внутри блока try … catch. В C# объекты отслеживаются сборщиком мусора среды CLR, а не компилятором, поэтому обработка исключений организуется очень эффективно и не сказывается на производительности программы. Вывод пользовательских сообщений об ошибках включается декларативно, с помощью установки, задаваемой в разделе файла web.config :... Атрибут mode определяет, будет ли вывод пользовательских сообщений об ошибках включен, отключен или включен только для удаленных клиентов. Данный атрибут является обязательным. По умолчанию он имеет значение Remoteonly, при котором удаленные пользователи видят стандартную страницу с минимально информативным сообщением об ошибке, не говорящем ни о чем, кроме того, что на сервере что-то не так. Локальные пользователи при этом получают сообщения ASP.NET с детальными описаниями ошибок. Если установить mode = " Off ", то подробные сообщения об ошибках увидят и локальные и удалённые пользователи.

Для того, чтобы выводить более профессиональные и дружественные пользователю сообщения, которые были согласованы с общим интерфейсом сайта, необходимо включить режим mode = "On" в файл web.config : После этого, какой бы ни была ошибка, ASP.NET станет переадресовывать пользователя на страницу GenericError.htm, содержимое которой всецело определяются разработчиком. Это происходит благодаря необязательному атрибуту defaultRedirect, в котором задается станица с сообщением об ошибке. Если вы хотите отдельно обработать некоторые ошибки со стандартными кодами сервера, то их обработчики можно указать в дополнительных тегах Если атрибут mode установлен в On, то локальные и удаленные пользователи перенаправляются на одну и ту же страницу с сообщением об ошибке. Если атрибут mode установлен в Remoteonly и имеется атрибут defaultRedirect, то удаленные пользователи перенаправляются на указанную вами страницу, а локальные – на выводимую по умолчанию. Пользовательские файлы ошибок

Исключения приложения и страниц Различают исключения уровня страницы и уровня приложения. Первые обрабатываются обработчиками Page_Error каждой страницы, а вторые – обработчиком Application_Error в файле Global.asax. Исключения уровня страницы называются внутренними. Информация о них находится в свойстве InnerException класса Exception. Необработанные внутренние исключения вызывают исключения уровня приложения – HttpUnhandledException. На уровне приложения, например, в файле Global.aspx можно работать как с внутренними исключениями, так и с исключениями всего приложения. Для этого необходимо зафиксировать исключение в какой-либо переменной, например, Exception exc = Server.GetLastError(); Теперь, через переменную exc, мы получаем доступ к исключениям уровня приложения. Для доступа к внутренним исключениям необходимо указать конструкцию exс.InnerException Исключения уровня приложения всегда необходимо удалять: Server.ClearError(); Если подобное исключение не удалить, то клиент получит сообщение об ошибке приложения. Для генерации внутреннего исключения на уровне приложения необходимо использовать следующий конструктор: Exception exc = new myException(); // создание внутр. пользователь-го исключения exc.Data.Add("message", " Внутренняя ошибка… ", ); // информация об исключении throw new Exception(" Ошибка приложения … ", exc); // генерация исключения При этом внутреннее исключение будет иметь сообщение " Внутренняя ошибка… ", а исключение уровня приложения – " Ошибка приложения … "

Обработка ошибок уровня приложения Если для всех страниц приложения алгоритм обработки ошибок один и тот же, то его следует реализовывать на уровне приложения. Такой обработчик будет перехватывать все исключения которые не были обработаны на страницах приложения при условии, что в разделе файла web.config атрибут mode = "Off " или отсутствует defaultRedirect. Добавьте в корне приложения файл Global.asax (см. события приложения) и создайте следующий обработчик:события приложения protected void Application_Error(object sender, EventArgs e) { // определяем исключение приложения – необработанное исключение HttpUnhandledException Exception ex = Server.GetLastError(); if (ex.InnerException != null) // если оно содержит внутренние исключения, { // анализируем внутренние исключения: if (ex.InnerException is NotImplementedExeption) Server.Transfer(~/errorpages/ notImplementedExeption.htm ); else Server.Transfer(~/errorpages/ appError.htm ); } if (ex is HttpException) { // Ошибки уровня HTTP-запросов для.aspx-ресурсов (не.html) Server.Transfer("~/errorpages/ HttpException.htm "); } // удаляем ошибку Server.ClearError(); }