Программирование >>  Руководство по созданию web приложений 

1 ... 43 44 45 [ 46 ] 47 48 49 ... 141


Базы данных в . Практическое руководство

Описанные здесь приемы работы с объектами Recordset используются во всех примерах, приведенных в этой главе.

Объект Errors

выполнении команд могут возникать ошибки. Ошибки попадают в ADO от провайдера и в набор Errors. Заметим, что в зависимости от ситу-

в результате выполнения одной команды может возникать несколь-

ко ошибок. Для каждой создается объект Error, который затем помещается в наборЕггогз.

В сл5ае сценариев JScript объект Error имеет свойства number и

description, первое из которых содержит числовой код ошибки, а второе - ее текстовое описание (рис. 4-4).

Заметим, что в сценариях VBScript объект Error имеет несколько свойств, перечисленных в таблице 4-4. Эти же свойства доступны и в приложениях С++, обращающихся к объектам ADO с импортированием библиотеки типов. Таблица 4-4. Свойства объекта Error, доступные сценариям VBScript

CiiOHcriio Описание

Description Текст описания ошибки

Number код ошибки типа long

Source Объект, вызвавший появление ошибки

Информация об ошибке от источника SQL

NativeError Информация об ошибке от данных SQL

Файл справочной системы Microsoft Windows Help, ко-

торый содержит ошибки

HelpContext Идентификатор раздела упомянутой выше .. справочной системы с ошибки (иногда отсутствует)

Как видите, на сегодняшний VBScript предоставить более об-

об ошибках, чем JScript. Однако для решения ства практических задач вполне достаточно средств обработки ошибок, предусмотренных в JScript.

НаборЕггог8создаетсяврамкахобъектаСоппес11оп иимеет, таким отношение к конкретному соединению с базой данных. Обработка ошибок заключается в том, что приложение в цикле перебирает все Error набора Errors, выделяя из них код ошибки и текст сообщения об ошибке.

Способ обработки ошибок в серверных сценариях ASP сильно зависит от на котором этот сценарий . В литературе . множество

примеров обработки ошибок в сценариях VBScript и мало - в сценариях

JScript. Мы попытаемся этот недостаток.

Как вы знаете, существует два принципиально разных подхода к обработке ошибок. Первый предполагает кодов завершения при выполнении тех

или иных операций, а второй на использовании исключений (exception).

Исключения доступны практически во всех современных системах програм-Например, такие операторы, как try и catcli встроены в С++ nJava.



До недавних времен язык сценариев JScript не позволял обрабатынать исключения, однако. с JScript версии 5.0, ситуатшя изменилась.

Рис. 4-4. Набор Errors

Рассмотрим следующий фрагмент кода, в котором ошибок при интерфейсов ADO:

обработка

connect

cmd.

= 1:;

= connect;

dVarCna-, adParamlnput, 50,

catch (tx)

if(ex instanceof Error)

thrrw

Errors. i-i-i-)

+ errDescription + <ur>;



else

throw ex;

Строки сценария в которых выполняется обращение к интерфейсу

,\Г>С). расположены в блоке try. Когда при вызове методов этих интерфейсов или просто в процессе выполнения сценария происходит ошибка, управление передастся блоку catch. Заметим, что в сценарии JScript каждому блоку try может соответствовать только один блок catch, а не несколько, как в программах, составленных на языках С++ или Java.

В качестве параметра в блок catch передается объект, содержащий информацию о возникшей ошибке. Если ошибка произошла при вызове методов интерфейсов ADO, объект имеет тип Error,

Наш обработчик ошибок перехватывает только такие ошибки, передавая остальные системе интерпретации серверных сценариев ASP с помощью ключевого слова throw. Для проверки принадлежности переменной ех классу Error мы используем ключевое слово

На следующем этапе проверяется содержимое свойства Count объекта Errors, В нем счетчик объектов Error в наборе Errors то есть, попросту го-

воря, количество ошибок. Если оно равно нулю, мы считаем, что произошла неожиданная ошибка, и передаем ее системе интерпретации серверных сценариев ASP.

Далее в цикле перебираются kvv элементы набора Errors, формируя в вой переменной serrMessage итоговое об ошибке в формате фрагмен-

та документа НТМЕ. Это затем передается странице error.asp

параметр EBPHSi, Параметр ERROR мы используем для передачи имени страницы ASP, в которой произошла ошибка.

Как всего реализовать обработку подобных ошибок в приложении

Web?

Очевидно, пользователю не интересна развернутая диагностика ошибки, возникшей в Вашем Достаточно, если возникновении ситуации он получит о том, что произошла внутренняя ошибка, с рекомендацией попробовать операцию еще pa:i через некоторое время.

С другой стороны, информация об ошибках нужна Вам как разработчику приложения для его отладки и ликвидации возникших проблем. Поэтому можно пользователя отправить вам диагностику по электронной

заранее форму с сообщением. А лучше, если приложение будет автоматически сообщения об ошибках в файл базы данных для последующего Допустимо, комбинировать оба способа.

Объект Properties

Объекты Connection, СогвлипО, Recordset и Field . , в себе объекты Properties. Объект Properties представляет собой набор объектов Propertie, представляющих параметры объектов Connection, Command, и Field, этих объектов показана на рис. 4-5.



1 ... 43 44 45 [ 46 ] 47 48 49 ... 141

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика