Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Новости ИТ Программы Книги Games   Обои   Экспорт RSS E-Books
 
Поиск по сайту

TOP-10 программ
Symantec Norton Ghost 9.0
Partition Magic 8.0.2 Pro
Xilisoft 3GP Video Converter v3.1.7.0616b
Norton AntiVirus 2005
Xilisoft 3GP Video Converter v2.1.52.831b
Антивирус Касперского Personal 5.0.303 beta 2
RAR Password Cracker 4.12
ABBYY PDF Transformer v1.00.820
MP3 To Ringtone Gold v3.02
Mobtime Cell Phone Manager v5.3.1
 
Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
 
 

   Интернет технологии -> JavaScript -> Блоки try... catch... finally... в JScript 5


Блоки try... catch... finally... в JScript 5.

Web-программист казанского центра Интернет
Степанищев Е.В.
CitForum

Пояснение для людей не знакомых с данной конструкцией

Конструкция try - catch - finally предназначена для перехвата ошибок (исключений). Если в блоке try каком-то операторе возникает ошибка, JScript игнорирует остальные операторы и переходит в блок catch, где находится блок обработки исключений. Последним выполняется блок finally, в котором обычно выполняют некие заключительные действия. Допускается использование неполной конструкции - без catch или finally.

Скажу сразу, что бы не было никаких недоразумений: JScript - это JavaScript в интерпретации Microsoft, а 5-я версия предполагает наличие Internet 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 и 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 пополнился еще одной полезной конструкцией, существенно упрощающей жизнь программиста.



 
Популярные книги

Технология программирования на C++. Начальный курс

Подробнее

Общая информатика. Универсальный курс

Подробнее

Photoshop CS2 для пользователя

Подробнее

 

 
Новости ИТ
21.11.2008  Thunderbird 2.0.0.18
21.11.2008  Miranda IM 0.7.13
21.11.2008  Dr. Web 5 Beta
21.11.2008  KAV/KIS 2009 8.0.0.506
21.11.2008  avast! 4.8 (1290)
21.11.2008  Radmin 3.3
21.11.2008  DVR-X162J - новый внешний DVD-привод от Pioneer
21.11.2008  Дизайнерские системные блоки от Smooth Creations
21.11.2008  SPARKLE представляет Calibre P980X+, видеокарту с необычным дизайном
21.11.2008  Titan представляет куллер для Intel i7
21.11.2008  Компактный ПК для дома Acer Aspire X3200 - в России
21.11.2008  Hitachi Data Systems объявляет о новом плане инвестиций в России и странах СНГ
21.11.2008  Назначен новый президент Microsoft в России
21.11.2008  Mustek: новые цифровые видеокамеры начального уровня
21.11.2008  Серверные Core i7 - быстры ли они? Да, и очень, судя по тестам в SPECfp
21.11.2008  NETGEAR: акция для партнеров
21.11.2008  Персональные фотокарты на Яндексе
21.11.2008  Программа для стартапов Microsoft BizSpark анонсирована в России
21.11.2008  Средства защиты от утечек конфиденциальных данных Symantec DLP 8.1 теперь и в России
21.11.2008  Axis: первый 6-канальный IP-видеосервер с поддержкой H.264/M-JPEG
 
Полезно

 
Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.
 
Rambler's Top100