ПРОЦЕДУРИ ОБРОБКИ ПОМИЛОК

Цю тему підвищеної труднощі при першому читанні можна пропустити, поки не буде прочитана частина III

Як вже говорилося у вступі до цього розділу, процедури обробки помилок-досить екзотична можливість, розрахована на те, щоб дозволити правильної програмі самої обробляти помилки, які можуть зявитися в навколишньому її програмної та апаратної середовищі з безлічі джерел

МікроЕBM, будучи невеликими і транспортабельними, залежать від місцевих мереж електроживлення На відміну від великих ЕОМ, які можуть мати стабілізоване харчування мікроЕОМ повинні приєднуватися до звичайної електромережі, в якій цілком можуть зявлятися викиди напруги через роботу інших електроприладів, а також флуктуації рівня напруги Крім того, під впливом радіочастотного електромагнітного випромінювання в неекранованих кабелях або коннекторах можуть виникати електричні шуми

Транспортабельність нову якість ЕОМ, яке призводить до того, що все більше і більше неспеціалістів починають використовувати мікроЕОМ Це добра справа, але в

результаті ймовірність помилкового введення значно збільшується Хоча при роботі в таких умовах вводяться значення повинні ретельно перевірятися, проте в окремих випадках помилкове значення може потрапити в програму і через деякий час привести до серйозної помилки

Тільки досвід дозволить визначити помилки, які можуть виникати з двох описаних вище причин, і знайти способи усунення їх впливу Нижче описаний механізм процедур обробки помилок, а розробка підходящої процедури повинна орієнтуватися на конкретну ситуацію

У нормальному стані програми її виконання припиняється при виникненні помилки При цьому значення внутрішніх змінних зазвичай зберігаються і їх можна проаналізувати за допомогою негайно виконуваного оператора PRINT Однак можна визначити глобальне умова, згідно з яким при виникненні помилки відбувається передача керування спеціальною процедурою обробки помилок Ця умова має вигляд

10   ON ERROR GOTO 500

де рядок 500 служить початком розділу обробки помилок Поки дію цього оператора залишається в силі, при виникненні помилки управління передається процедурі обробки помилок, яка врешті-решт або повертає керування в те місце, де виникла помилка, або в будь-яке інше місце програми Оператор ON ERROR володіє відкладеним дією, що означає, що він вступає в справу тоді, коли в якомусь місці програми сталася помилка Для переходу до нормального режиму виконання виловлювання помилок може бути припинено оператором ON ERROR OFF або йому подібним (В Бейсике Microsoft для цих цілей використовується оператор ON ERROR GOTO 0)

Наступний приклад ілюструє процедуру виловлювання помилок: 10 REM

20   

30  ..

40   ON  ERROR GOTO   200

50

200 REM ПІДПРОГРАМА ОБРОБКИ ПОМИЛКИ

210 IF ERR=11 THEN 240

220 PRINT ПОМИЛКА; ERR У рядку; ERL

230 STOP

240 PRINT ЗАФІКСОВАНА СПРОБА РОЗПОДІЛУ НА НУЛЬ ;

245 PRINT ПЕРЕВІРТЕ ВВЕДЕННЯ

250 Z = 10Е-20

260  RESUME

У Бейсике Microsoft і в Бейсике ВВС є дві змінні (або функції), ERR і ERL Перша містить номер помилки, а друга номер рядка У наведеному вище прикладі перевірка помилок була ініційована в рядку 40, після чого при появі помилки управління було передано рядку

200 Цією рядком починається спеціалізована підпрограма обробки помилки, що виникає при спробі поділу на 0 тому якщо сталося щось інше, то інформація про це друкується в рядку 220 Якщо виявлено ділення на 0, то в рядку 240 виводиться відповідне повідомлення і значення змінної (Z) встановлюється таким чином, щоб помилки не виникло Оператор в рядку 260 викликає повернення управління до помилкової рядку і повторення її виконання

Щоб у процедурі обробки помилок можна було зясувати деталі помилки, в системі повинні бути передбачені змінні типу ERL, ERR або спеціальні оператори IF Як тільки виконані відповідні дії з обробки помилки, які можуть включати в себе і припинення виловлювання майбутніх помилок, управління виконанням повертається назад в програму або за допомогою оператора RESUME, або, якщо такого немає, за допомогою оператора GOTO Оператор RETURN використовувати не можна, так як процедура обробки помилок викликається не таким способом, як звичайні підпрограми

Джерело: Уолш Б Програмування на Бейсике: Пер з англ М: Радіо і звязок, 1988 336 с: ил

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*