Существует возможность написать код сценария таким образом, чтобы исключительные ситуации не приводили к завершению работы, а обрабатывались бы внутри сценария. Для осуществления подобной обработки исключительных ситуаций в 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-кодировки в текстовую строку |