Урок vbscript №11 обробка помилок

Урок VBScript №11: Обробка помилок - On Error Resume Next

Урок vbscript №11 обробка помилок
У даній статті я розповім і покажу, як обробляти помилки в мові VBScript. Розповім про два оператора об'єкта Err: On Error Resume Next (Включає обробку помилок) і On Error GoTo 0 (відключає обробку помилок). Дані оператори дозволяють виконувати певні вирази після певних помилок, а не спостерігати віконце з помилкою і переривання виконання сценарію.

Visual Basic Script урізаний в своїх можливостях по обробці помилок на відміну від свого великого брата. Залишилося тільки два оператора об'єкта Err які ми можемо використовувати:

  • On Error Resume Next - Включає обробку помилок. Якщо трапляється помилка, то вона не призводить до припинення сценарію, і ми можемо розібратися з нею самі.
  • On Error GoTo 0 - Вимикає обробку помилок. Варто за замовчуванням.

Властивості об'єкта Err

  • Description - повернеться опис помилки.
  • HelpContext - Показує номер топіка відкривається довідки, якщо користувач натисне F1 в віконці повідомлення про помилку. (Якщо є)
  • HelpFile - Файл довідки. (Якщо є)
  • Number - номер помилки. 0 - відсутність помилки.
  • Source - Повертає ім'я додатки, в якому сталася помилка.

Давайте розглянемо найпростіший приклад з обробкою помилки - поділ на 0.

Але в більш складних сценаріях, як брут поштових сервісів (Yandex.ru, Mail.ru) на VBScript. треба перебрати спочатку всі можливі помилки, які вам відомі, а потім про всяк випадок застрахуватися від невідомих помилок.

Особливу увагу треба звернути на те, що оператор On Error Resume Next не дозволяє обробляти синтаксичні помилки.

Методи об'єкта Err

Clear - даний метод дозволяє скидати все властивості і прати інформацію про помилку. Те ж саме відбувається при використанні операторів: On Error Resume Next, Exit Sub, Exit Function.

Raise - Даний метод дозволяє генерувати свою власну помилку часу виконання.
Синтаксис: Err.Rise Number [, Source [, Description [, Helpfile [, Helpcontext]]]]

Всі параметри - це властивості об'єкта Err, які я описав на початку статті. Обов'язковий параметр тільки - номер помилки. Параметри вказуються без дужок!