Пояснение для людей не знакомых с
данной конструкцией
Конструкция 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 имеет
три конструктора и два свойства:
Свойство (и параметр конструктора)
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-страничке - удобство для пользователя. После того, как мы выложили наше творение в сеть, мы сразу начинаем предпринимать массу усилий для того, чтобы привлечь на свой сайт максимум посетителей... подробнее
Этот скрипт поможет вам организовать на своем сайте или страничке баннерную систему.
Первый фрагмент вы вставляете в любое место странички... подробнее
В Internet Zone-154 была небольшая заметка Локальная баннерная система. Автор - Вадим Беляков (http://tuta.da.ru) предлагал поставить на страничку баннер, используя небольшой javascript. Я прочитал этот номер лишь в середине апреля. Мне сразу же пришло в голову использовать его для текстовой рекламы... подробнее
JS, или JavaScript язык сценариев, которые выполняются на стороне клиента и не требует перезагрузки страницы. JavaScript был разработан компанией Netscape в 1995 году... подробнее
Как известно, бичом современного Интернета является спам - непрошенная рассылка рекламных и прочих сообщений. По данным некоторых аналитиков, он составляет более 50% всех сообщений в Сети... подробнее