Зараз обговорюють

"Тобто є ряд завдань, які взагалі без рекурсії не наважуються."  - це як розуміти? Перефразуй, будь ласка. 

виправив, йшлося про те що деякі завдання можна вирішити лише при використанні рекурсії

Спасибі дуже корисна стаття

А ще щось планується подібного найближчим часом?


Дякую за підтримку, радий що Вам сподобалось!

Так маю вже майже дороблений проект по управлінні Audio файлом, на заміну стандартним клавішам управління HTML5, але ще не встиг відтестувати програвання файлів з інтернету, поки лише локально працює

Надіюсь найближчим часом дороблю й закину

Рахунки

webmoneyeur - E385818210641
usd - Z304643423050
uah - U354026817492
rub - R301704373231easypay80002677bitcoin1F5HRGroUtEQW9HBNbeew8iKh5KQ8vJxzw

Зворотній зв'язок

Для покращення роботи сайту надсилайте свої зауваження:
mailЗауваження
mailПропозиція

Статистика

UkrNET - поисково-информационный ресурс

VBA : Перехоплення і обробка помилок

Для розробника дуже важливим є вміння обробляти помилки, які можуть виникнути з різних причин: користувач ввів неприпустиме значення, файл з таким ім'ям вже існує, сервер баз даних відмовляється вставляти введені користувачем значення, розірвано мережеве з'єднання і т. П. При виникненні помилок часу виконання зазвичай робота додатка аварійно завершується, а користувачеві видається вбудоване повідомлення, яке він навряд чи зможе розшифрувати. Тому одна з найбільш трудомістких завдань при створенні програми на VBA - передбачити, які помилки можуть виникнути при роботі користувача і реалізувати їх обробку.

Загальний принцип обробки помилки виглядає так:

Перед небезпечним кодом (збереження або відкриття файлу, можливість поділу на нуль і т. П.) Поміщається команда:

On Error GoTo мітка_обробника_помилки

наприклад:

Dim a As Integer, b As Integer, c As Integer
	On Error GoTo Errors1
	a = 5
	b = 0
	c = a / b
	'коді програми поміщається мітка обробника помилки і програмний код обробки:
Errors1:
	MsgBox "Помилка при діленні", vbInformation + vbOKOnly, ""

Оскільки в такій ситуації код обробника помилки буде виконуватися навіть в тому випадку, якщо помилки не було, є сенс поставити перед міткою обробника команду Exit Sub (якщо це подпроцедура) або Exit Function (якщо це функція). Повний код нашої міні-програми може виглядати так:

Sub Test ()
Dim a As Integer, b As Integer, c As Integer
	On Error GoTo Errors1
	a = 5
	b = 0
	c = a / b
	Exit Sub
Errors1:
	MsgBox "Помилка при діленні", vbInformation + vbOKOnly, ""
End Sub 

Як правило, якщо є можливість виправити помилку, то в обробнику помилок її виправляють (або надають таку можливість користувачеві), якщо немає - то видають користувачеві повідомлення з поясненням і припиняють роботу програми.

Після виконання коду обробника помилки вам потрібно буде зробити вибір: або продовжити виконання тієї процедури, в якій виникла помилка, або припинити її виконання і передати управління викликала її процедурі. У вашому розпорядженні три варіанти:

- Ще раз виконати оператор, який викликав помилку (якщо обробник помилки може визначити характер виник проблеми). Для цього достатньо в обробник помилок вставити команду Resume;

- Пропустити оператор, який викликав помилку. Для цієї мети можна використовувати команду Resume Next;

- Продовжити виконання з певного місця в програмі. Для цього використовується команда Resume мітка. Синтаксис роботи з міткою - такий же, як в операторі GoTo.

Відзначимо ще кілька моментів, які пов'язані з обробкою помилок:

- щоб повернутися в нормальний режим роботи після проходження небезпечної ділянки коду (скасувати обробку помилок), можна скористатися командою:

On Error GoTo 0

- в вашому розпорядженні є також команда On Error Resume Next. Вона наказує компілятору просто ігнорувати всі виникаючі помилки і переходити до виконання наступного оператора. На практиці дуже часто перед виконанням небезпечного оператора використовується ця команда, а потім за допомогою конструкції Select Case перевіряється номер виникла помилки (через властивості об'єкта Err), і в залежності від цього організується подальше виконання програми.

Розглянемо трохи докладніше спеціальний об'єкт Err. У цього об'єкта є два головних властивості і два методи.

- Number - це властивість показує номер помилки. Зазвичай воно і перевіряється в обробнику помилок, щоб з'ясувати, яка саме помилка виникла. Якщо номер помилки дорівнює 0, то помилки не було.

- Description - текстовий опис виниклої помилки. Саме воно за замовчуванням повертається користувачеві (хоча користувач навряд чи в ньому що-небудь зрозуміє). Швидше це інформація для розробника.

- Clear () - цей метод очищає об'єкт Err від старої інформації про помилки. Те ж саме робить і команда On Error GoTo 0.

- Raise () - дозволяє згенерувати помилку в програмі, передавши їй номер і опис. Дуже корисна можливість для перевірки поведінки програми, якщо змоделювати ситуацію з реальною помилкою важко.

Треба сказати, що обробка помилок - це дуже надійний, але і дуже ресурсомісткий метод роботи. Якщо у вашій програмі є можливість обійтися без генерації та перехоплення помилок (наприклад, перевіряти вводиться користувачем значення за допомогою вбудованих функцій), то краще так і робити. У той же час наявність обробників помилок, щоб справлятися з дійсно аварійними ситуаціями, - це великий плюс вашій програмі (а часто і просто необхідність).


view431like1dislike0 avatard_l4w clock 2016-09-07 16:04

Коментарі:



Для даної статті відсутні коментарі

Про нас

"Programmers World" розроблено з метою полегшення в освоєнні навичок програмування, та поширення матеріалів з сфери ІТ Українською мовою.

Кожен бажаючий може безкоштовно користуватися ресурсами сайту, щоб:

- Вивчати теоретичні аспекти мов програмування

- Переглядати практичне застосування теорії при виконанні різних міні проектів з відкритим кодом

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

- Спілкуватись з іншими користувачами та обмінюватись досвідом

Сайт функціонує на безопланій основі та ентузіазмі розробника, якщо Ви бажаєте долучитись до розвитку даного проекту то можете пожертвувати кошти на рахунки розміщені в блоці "Допомога сайту".

Сайт

Зареєстровані користувачі можуть скористатися системою діалогів, в профілі користувача, для отримання потрібної інформації. Написати!

Також Ви можете використати форми відправки Зауважень та Пропозицій.


Електронна пошта

Ви можете звертатись на нашу поштову скриньку site.programmersworld@gmail.com

www.000webhost.com