Рекомендуется: используйте ASP для разработки веб -сайтов Как правило, крупномасштабные веб-сайты все меньше и реже используют ASP для архитектуры, но ASP по-прежнему занимает большой рынок на малых и средних бизнес-сайтах. ASP пользуется малым и средним администраторами сайта за его простой, короткий цикл разработки и легкое обслуживание. Однако, насколько я знаю
7.4.2 Обработка ошибок VBScript
В VBScript интерпретатор скрипта может быть сделан не обрабатывать какие -либо ошибки, которые он находит, и продолжить выполнение следующего оператора, используя оператор RESUME ERROUE RESUME. Как только это утверждение будет обработано, двигатель сценария продолжит запускать последующую программу, не оплачивая никаких ошибок, которые были найдены. Тем не менее, этот процесс применяется только к средам, где операторы выполняются последовательно, а также, иными словами, а не к вложенным функциям или подпрограммам.
1. Используйте оператор RESUME ERROUE RESUME
Когда в подпрограмме возникает ошибка, если оператор RESUME RESUME OR RESUME не выполняется, ошибка будет передана в среду, в которой она вызывается. Этот процесс повторяется до тех пор, пока не будет найдена среда, работающая в обратном ответе «Резюм с ошибкой», или не будет найдена обработчика ошибок по умолчанию, а ошибка передается ASP, а IIS отображает страницу ошибки по умолчанию.
Эта неправильная цепочка вызовов означает, что могут быть созданы функции и подпрограммы, которые не позволяют запускать ошибки от того, чтобы программа прекратила запускать. Если оператор «Резюм с ошибкой» будет размещен в начале подпрограммы, любые ошибки времени выполнения прервут запуск подпрограммы, но программа, которая вызывает подпрограмму, будет продолжать работать, не заставляя остановку веб-страницы.
Например, если вам нужно написать строку в файл, вы можете получить доступ к файлу через независимую функцию, чтобы не допустить перерыва запуска всей программы:
'Создайте файл с именем strfilename, перезаписывая любое существующее с таким именем
'и записывает в него Strcontent, затем закрывает файл
'Возвращает true, если это удастся, или false по любой ошибке
Функция writenewfile (strfilename, strcontent)
При ошибке резюме следующее 'Выключите обработчик ошибок по умолчанию
Witenewfile = flase 'возвращаемое значение функции по умолчанию
Установить objfso = createObject (scripting.filesystemobject)
Если err.number = 0, тогда установите objfile = objfso.createTextFile (strFileName, true)
Если err.number = 0, то objfile.writeline strcontent
Если err.number = 0, то objfile.close
Если err.number = 0, то writenewfile = true
Конечная функция
Обратите внимание, что вышеуказанная программа проверяет свойство номер ER ER -объекта VBScript, прежде чем пытаться обработать каждую операцию программы. Если это значение составляет 0 (погрешность еще не произошла), процесс подачи и создания файла может быть продолжен. Однако, если возникает ошибка, двигатель скрипта установит значение свойства объекта ER и продолжит обрабатывать следующую строку.
До тех пор, пока он может работать нормально, не вызывая ошибки, возвращаемое значение функции будет установлено в True. В противном случае функция вернет ложь. В программировании вы можете использовать эту функцию и предпринять другие действия после ее тестирования.
Вот простой пример, мы хотим использовать отдельную функцию для первой части задачи, чтобы мы могли более точно определить, где происходит ошибка. Это облегчает чтение кода во время отладки. В основной программе страницы можно вызвать три отдельные функции.
Если CreateNewFile (strFileName), тогда 'Создайте новый файл
Response.write Новый файл успешно создан <br>
Если writeContent (strcontent), то напишите контент
Response.write Content Записано в файл <br>
Еще
Ошибка ответа. Перепись: не удалось записать в файл <br>
Конец, если
Если FlectionFile (strFileName), тогда
Response.write файл закрыт <br>
Еще
Response.write Ошибка: не удалось закрыть файл <br>
Конец, если
Еще
Response.write Ошибка: не удалось создать новый файл <br>
Конец Funcotn
2. Использование на ошибке goto 0
В ASP 2.0 (хотя нет документации) и ASP 3.0, поведение по обработке ошибок по умолчанию также может быть восстановлено с помощью оператора on umer goto 0. После запуска этого оператора возникает ошибка времени выполнения, вызовет обработку ошибок по умолчанию, проверяя каждую вложенную программу в цепочке среды до кода основной страницы. Если нет другой среды для отключения обработки ошибок по умолчанию, выполнение веб -страницы остановится и отобразит страницу ошибки IIS по умолчанию.
3. VBScript Err объект
В предыдущем примере, когда обработка ошибок по умолчанию отключена, проверьте, произошла ли ошибка, проверив свойство номера объекта ER VBScript. Объект ER сохраняет информацию об ошибках времени выполнения. Таблицы 7-3 и 7-4 дают методы и свойства, предоставленные объектом ERR VBScript.
Таблица 7-3 Методы объекта vbscript err
метод
иллюстрировать
Прозрачный
Очистить все текущие настройки объекта ERR
Поднимать
Произошла ошибка во время выполнения
Таблица 7-4 Свойства объекта ERR VBScript
свойство
иллюстрировать
Описание
Установить или вернуть строку, описывающую ошибку
Число
(По умолчанию) Установить или вернуть указанное значение ошибки
Источник
Установить или вернуть имя объекта, который сгенерировал ошибку
Используйте эти свойства, чтобы проверить, какая ошибка происходит. Например, различные меры могут быть приняты на основе номера ошибки, или информация об ошибке может быть предоставлена пользователю со значениями свойства источника и описания или перенесена в файл.
Вы также можете использовать объект ER для создания ошибки. Почему эти вещи делают? Потому что иногда я хочу отправить настраиваемое сообщение об ошибке пользователю. Свойства объекта ER может быть установлена на любое желаемое значение. Затем вызовите метод повышения, чтобы создать эту ошибку. Это остановит программу и передат ошибку обратно вдоль цепочки вызовов.
В следующем примере показано, как обрабатывать ошибки при чтении текстового файла на серверном диске. Обратите внимание, как использовать постоянный vbobjecterror, чтобы определить, что выбранный номер ошибки не будет путается с существующим номером ошибки. Добавляя любой выбранный номер ошибки в эту константу, гарантированно не путать с предопределенными ошибками.
Functoin Readthisfile (strfilename) 'возвращает контент как строку
При ошибке резюме следующим
Readthisfile = 'возвращаемое значение функции по умолчанию
Установить objfso = createObject (scripting.filesystemobject)
Установить objfile = objfso.opentextfile (strfilename, forreding)
Выберите case err.number
Случай 0 'ОК, не предпринимайте никаких действий
Случай 50, 53 'Стандартный файл или путь, не найденные ошибки
'Создать пользовательские значения ошибок и поднять ошибку
Interrnumber = vbobjecterror 1073 'Пользовательский номер ошибки
Strerrdescript
Поделиться: как использовать ASP для получения адреса реального IP клиента? Чтобы получить реальный IP -адрес клиента через прокси -сервер, вы должны использовать request.servervariables (http_x_forwarded_for), чтобы прочитать его. Но следует отметить, что не каждый прокси -сервер может использовать request.servervariab