Выбрать главу

Существует возможность написать код сценария таким образом, чтобы исключительные ситуации не приводили к завершению работы, а обрабатывались бы внутри сценария. Для осуществления подобной обработки исключительных ситуаций в JScript необходимо использовать конструкцию try…catch. Синтаксис следующий:

try

 Защищенный блок

catch (except)

 Блок обработки исключительных ситуаций

После ключевого слова try здесь записываются те операторы, при выполнении которых потенциально может возникнуть ошибка. В качестве параметра except надо использовать любое имя переменной (предварительно объявлять эту переменную не нужно). Если в защищенном блоке не возникло ошибки, то значение этой переменной будет равно нулю; в случае же возникновения исключительной ситуации управление сразу передается в блок catch, при этом переменная except как экземпляр объекта Error будет содержать два свойства: error — числовой код возникшей ошибки и description — краткое описание ошибки.

В качестве примера приведем часть сценария, в которой происходит обработка исключительных ситуаций при подключении сетевого диска:

try {

 //Подключаем сетевой диск

 WshNetwork.MapNetworkDrive(Drive, NetPath);

} catch (e) {

 //Обрабатываем возможные ошибки

 if (e != 0) {

  //Выводим сообщение об ошибке

  Mess="Ошибка при подключении диска " + Drive + " к " + NetPath+

   "\nКод ошибки: "+е.number+"\nОписание: "+е.description;

  WshShell.Popup(Mess, 0, "Подключение сетевого диска", vbCritical);

 }

}

Порядок выполнения операторов 

В табл. П1.10 операторы языка JScript расположены по старшинству, т.е. в составных операторах первыми будут выполняться те из них, которые стоят в этой таблице выше. Если операторы расположены в одной строке таблицы, то они выполняются слева направо.

Таблица П1.10. Порядок выполнения операторов

Оператор Описание
. [] () Доступ к полю объекта, индексирование в массиве, вызов функции
++ -- - ~ ! Унарные операторы
* / % Умножение, деление, вычисление остатка от деления
+ - + Сложение, вычитание, конкатенация строк
<< >> >>> Битовые сдвиги
< <= > >= Меньше, меньше или равно, больше, больше или равно
== != Равенство, неравенство
& Логическое И
^ Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ
| Логическое ИЛИ
&& Оператор отношения И
|| Оператор отношения ИЛИ
?: Условный оператор
= += -= *= /= %= >>= >>>= <<= |= &= ^=  Присваивание
, Многократное вычисление

Функции

Функции в JScript, как и в других алгоритмических языках, позволяют объединить несколько операций под одним именем. В случае необходимости функция может быть вызвана из любого места сценария.

В сценариях JScript поддерживаются два вида функций: встроенные функции и функции пользователя, которые вы пишете сами. 

Встроенные функции

В табл. П1.11 описаны встроенные функции языка JScript, которые в сценарии можно вызывать в любом месте без предварительного описания.

Таблица П1.11. Встроенные функции

Функция Описание 
escape(charstring)  Кодирование строки charstring с применением URL-кодировки. При этом все специальные неотображаемые символы преобразуются к виду %хх, где хх — шестнадцатеричный код символа 
eval(codestring)  Интерпретация и выполнение кода JScript, содержащегося в строке codestring. Эта функция позволяет динамически создавать текст сценария
isFinite(number) Возвращает true, если параметр number является корректным числом. В противном случае возвращает false
isNaN(numvalue) Возвращает true, если параметр numvalue имеет специальное значение NaN (см. описание числового типа). В противном случае возвращает false. Эту функцию можно применять для оценки значений; возвращаемых функциями преобразования типов parseInt и parseFloat
parseFloat(numstring) Преобразовывает строку numstring в число с плавающей точкой
parseInt(numstring, [radix]) Преобразовывает строку numstring в целое число. Целочисленный параметр radix может принимать значения от 2 до 36, которые указывают основание счисления для числа, содержащегося в numstring. Если radix не указан, то строки с префиксом '0х' задают шестнадцатеричные числа, а строки с префиксом '0' — восьмеричные. Все остальные строки определяют десятичные числа
unescape(charstring) Выполняет действие, противоположное действию функции escape, т.е. перекодирует строку charstring из URL-кодировки в текстовую строку