|
1999 г
Блоки try... catch... finally... в JScript 5.
Степанищев Евгений
Пояснение для людей не знакомых с данной конструкцией
Конструкция try – catch - finally предназначена
для перехвата ошибок (исключений). Если в блоке try каком-то операторе
возникает ошибка, JScript игнорирует остальные операторы Оператор (позднелат.operator— работник, исполнитель, от operor— работаю, действую)— то же, что отображение в математике. и переходит в блок
catch, где находится блок обработки исключений. Последним выполняется блок
finally, в котором обычно выполняют некие заключительные действия.
Допускается использование неполной конструкции - без catch или finally.
Скажу сразу, что бы не было никаких недоразумений: JScript – это
JavaScript в интерпретации Microsoft Microsoft (Microsoft Corporation, читается «майкрософт», NASDAQ: MSFT)— одна из крупнейших транснациональных компаний по производству программного обеспечения для различного рода вычислительной техники— персональных компьютеров, игровых приставок, КПК, мобильных телефонов и прочего, разработчик наиболее широко распространённой на данный момент в мире программной платформы— семейства операционных систем Windows., а 5-я версия предполагает наличие
Internet Интернет (произносится [интэрнэт]; англ.Internet)— всемирная система объединённых компьютерных сетей, построенная на использовании протокола IP и маршрутизации пакетов данных. Интернет образует глобальное информационное пространство, служит физической основой для Всемирной паутины и множества других систем (протоколов) передачи данных. Часто упоминается как «Всемирная сеть» и «Глобальная сеть». В обиходе иногда говорят «Инет». Explorer 5.0 (в 4-м IE всего лишь 3-я версия JScript).
Не знаю как вы, а я, сколько программирую на J[ava]Script мечтал,
что бы в этом языке появился наконец эта конструкция из двух слов,
но шли годы, а заветные слова так и оставались зарезервированными
и я уж было потерял всякую надежду, как вышел пятый IE...
И вот, однажды вечером, внося очередные изменения в свой JS Unix
(http://www.chat.ru/~junix/)
и роясь одновременно во внутренностях 5-го
"зонда" взгляд
мой зацепил знакомые "try, catch" и незнакомое "Error".
Смутная надежда Надежда — положительно окрашенная эмоция, связанная с ожиданием удовлетворения потребности, а также философский, религиозный и культурный концепт, связанный с осмыслением состояния человека, испытывающего эту эмоцию. маленьким мерцающим огоньком загорелась в моей душе.
Осторожно, не давая ей погаснуть я протянул руки к клавиатуре, набрал
try... catch... и в место досадного "зарезервированные слова" получил
радостное "предполагается наличие }".
Надо было видеть меня в тот момент (или слышать), каюсь:
я кричал, что Гейтс молодчина. Каюсь, потому что Гейтс – плохой дядя,
сделал в пятой версии то, что надо было сделать еще в первой.
Ну да ладно, это все замечательно, но надо было сделать так,
что бы кроме пятого эксплорера, остальные браузеры не замечали
этот блок. Хорошо, что в JScript есть такая замечательная вещь,
как условная компиляция. Воспользовавшись ею можно скрыть все что
угодно от посторонних глаз Netscape Navigator Navigator(рус. Навигатор, штурман, мореплаватель) — седьмой альбом немецкой группы Disbelief. Новый материал был записан в слегка изменённом составе, с новым продюсером Майклом Майнксом, на новой студии «MX», в городе Бухен на родине музыкантов. Альбом вышел 23-го февраля 2007-го года на лейбле «Massacre Records». Звук претерпел некоторых изменений, стал более экспериментальным и концептульным, но стиль игры группа сохранила, на некоторых песнях чувствуется небольшая примесь трэш-метала. На заглавную песню альбома был снят клип, где группу запечатлили уже вчетвером. и Internet Explorer 4.01
и ниже. Таким образом, вся конструкция выглядит так (после точки с
запятой – мои комментарии):
| |
/*@cc_on @*/ |
; Включаем условную компиляцию |
| |
/*@if (@_jscript_version>4) |
; Проверяем версию JScript |
| |
try |
; Сам блок try |
| |
{@end @*/ |
|
| |
Result=eval(expression); |
; Делаем что-то полезное |
| |
/*@if (@_jscript_version>4) |
|
| |
} catch (err) |
; "Ловим" ошибку |
| |
{ |
|
| |
alert(err.description); |
; Сообщение об ошибке |
| |
Result=''; |
|
| |
} finally |
|
| |
{ |
|
| |
alert(Result); |
; Завершающие действия |
| |
}; |
|
| |
@end @*/ |
|
| |
/*@cc_off @*/ |
; Выключаем условную компиляцию |
Где еrr – имя объекта Error, который будет создан при возникновении ошибки,
в него будут помещены параметры ошибки.
Объект Error имеет три конструктора и два свойства:
err=new Error();
err=new Error(number);
err=new Error(number,description);
Свойство (и параметр конструктора) number – числовое значение
(номер ошибки), свойство Свойство (в философии, математике и логике)— атрибут предмета (объекта). Например, о красном предмете говорится, что он обладает свойством красноты. Свойство можно рассматривать как форму предмета самого по себе, притом, что он может обладать и другими свойствами. Свойства, следовательно, подпадают под действие парадокса Рассела и парадокса Греллинга-Нельсона. description (так же параметр Параметр (от др.-греч. «соразмеряю») — величина, значения которой служат для различения элементов некоторого множества между собой. конструктора) –
строка, описание ошибки. Некоторые числовые значения и соответствующие
им описания ошибок приведены в таблице ниже:
|
Номер ошибки |
Описание ошибки |
|
-2146823279 |
Определение отсутствует |
|
-2146827282 |
Предполагается наличие ‘)’ |
|
-2146827273 |
Незавершенная строковая константа |
|
-2146827286 |
Ошибка синтаксиса |
|
-2146827280 |
Предполагается наличие { |
|
-2146827850 |
Объект не поддерживает это свойство или метод |
|
-2146827843 |
Команда не поддерживается объектом |
|
-2146827859 |
Невозможно создание объекта сервером программирования объектов |
|
-2146828235 |
Файл не найден |
Существует способ Метод (от греч. — «способ»)— систематизированная совокупность шагов, действий, которые необходимо предпринять, чтобы решить определенную задачу или достичь определенной цели. В отличие от области знаний или исследований, является авторским, то есть созданным конкретной персоной или группой персон, научной или практической школой. В силу своей ограниченности рамками действия и результата, методы имеют тенденцию морально устаревать, преобразовываясь в другие методы, развиваясь в соответствии с временем, достижениями технической и научной мысли, потребностями общества. Совокупность однородных методов принято называть подходом. Развитие методов является естественным следствием развития научной мысли. программно возбудить исключение (создать ошибку) -
достаточно вызвать оператор throw с созданным ранее объектом Error. При
перехвате ошибки конструкцией try-catch созданный объект будет передан
блоку catch. Примеры:
var err=new Error(-10,"Неверное число");
throw(err);
throw(new Error(-4,"Ошибка"));
Таким образом JScript пополнился еще одной полезной конструкцией, существенно упрощающей жизнь программиста.
Web-программист казанского центра Интернет
Степанищев Е.В.
|