Попытка прочитать параметр из реестра
Попытка прочитать параметр из реестра вынесена в отдельную функцию. Если происходит ошибка - функция возвращает код ошибки (Err.Number) и источник (Err.Source). В операторе if мы проверяем та ли это ошибка, что нам нужна и если это именно так, значит параметр не удалось прочитать по причине его отсутствия, о чем нас честно и предупреждают в появившемся сообщении. При этом скрипт корректно отрабатывает до конца. Если же ошибки не возникло, мы спокойно прочитываем значение нужного нам параметра.
Обратите внимание на объект
Err. Это стандартный объект VBScript, содержащий информацию о так называемых
run-time errors (ошибках времени выполнения). Свойство
Source указывает на источник ошибки (в сообщении на рисунке это последняя строка). Метод
Clear очищает свойства объекта, удаляя сведения об ошибке. Помимо Source и Clear у объекта есть и другие свойства и методы, но реально может понадобиться, пожалуй, свойство
Number и
Description. Number возвращает код произошедшей ошибки, а Description ее описание. Измените в скрипте строку
Perem = "Параметр не существует"
на
Perem = "Ошибка " & Err.Number & ". " Err.Description
Во время выполнения скрипта появится сообщение: "Ошибка -2147024894. Не удается открыть для чтения раздел реестра "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Test"". Это большое отрицательное число и есть код ошибки. При обработке исключений можно пользоваться и номерами ошибок.
Почему для объяснения работы с исключениями я объяснял все примеры на чтении данных из реестра? Во-первых, работа с реестром в WSH одна из наиболее часто встречаемых задач, во-вторых, другие ошибки (например, попытка подмапировать сетевой диск на уже существующую букву, попытка открытия несуществующего файла и т.п.) могут быть обработаны другими способами (при открытии файла можно сперва проверить его наличие с помощью метода FileExists объекта fso), в то время как проверка наличия какого-либо параметра в реестре отсутствует в принципе.Поэтому вопросы обработки исключений при работе с реестром наиболее актуальны.
Принципы обработки других ошибок ничем не отличаются от приведенных выше, так что теперь вы на основании материала данной статьи легко сможете отловить любые исключения возникающие при работе скрипта.
© 2003 К. Тарасов, И. Чеботарев
Содержание Назад
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий