Обработка ошибок

Содержание

Слайд 2

Типы ошибок: Синтаксические Ошибки выполнения (run-time) Логические (алгоритмические) ошибки Отладка программы

Типы ошибок:

Синтаксические
Ошибки выполнения (run-time)
Логические (алгоритмические) ошибки
Отладка программы – процесс пошагового исполнения

программы для проверки наличия логических (алгоритмических ошибок)
Обработка ошибок – это процесс отслеживания ошибок во время исполнения программы
Слайд 3

Синтаксические Возникают из-за неправильного использования синтаксиса языка. (MsqBox вместо MsgBox) Возникают

Синтаксические

Возникают из-за неправильного использования синтаксиса языка. (MsqBox вместо MsgBox)
Возникают во время

написания текста программы
VBA автоматически выявляет синтаксические ошибки при наборе программы
Слайд 4

Tools - Options

Tools - Options

Слайд 5

Логические (алгоритмические) ошибки О логических ошибках говорят тогда, когда программа выполняется

Логические (алгоритмические) ошибки

О логических ошибках говорят тогда, когда программа выполняется не

так, как ожидалось.
Вероятнее всего ошибку нужно искать в алгоритме. Поэтому иногда логические ошибки называют алгоритмическими. Например, если в программе вычисления квадрата числа с контролем вводимых значений условие проверки значения написать неверно, то программа может запрашивать ввод правильных значений при правильно введенных значениях
Слайд 6

Логические (алгоритмические) ошибки Точки останова(Toggle BreakPoint) Инструменты отладки программы Пошаговое выполнение

Логические (алгоритмические) ошибки

Точки останова(Toggle BreakPoint)

Инструменты отладки программы

Пошаговое выполнение программы View –

Toolbars – Debug

Продолжить

Break - прервать

Reset - сброс

Step Into
Шаг с заходом

Step over
Шаг с обходом

Step out
Шаг с выходом

Слайд 7

Логические (алгоритмические) ошибки Режим останова – это состояние, в котором выполнение

Логические (алгоритмические) ошибки

Режим останова – это состояние, в котором выполнение программы

прервано
Кнопка Запуск или Перейти/Продолжить позволяет продолжить выполнение программы
Нажатие кнопки Break приводит к немедленному прекращению выполнения программы и делает окно модуля активным
Кнопка Reset приводит к сбросу значений глобальных переменных
Слайд 8

Управление ходом выполнения программы Step Into ( ) (Шаг с заходом

Управление ходом выполнения программы

Step Into () (Шаг с заходом ) Выполняется

текущий оператор после чего выполнение программы сова остановливается. Если текущий оператор содержит вызов процедуры (функции или подпрограммы) происходит передача управления в эту процедуру и текущим становится первый ее оператор.
Step Over() (Шаг с обходом ) Выполняется аналогично, но только не происходит захода в вызываемую процедуру (она выполняется за один шаг). Останов происходит на следующем операторе главной (текущей) процедуры.
Step Out()( Шаг с выходом)
Служит для выполнения всех строк процедуры, включая все вызываемые процедуры, в режиме останова.
Слайд 9

Отслеживание значений переменных и свойств объектов 2 Использование специальных окон (меню

Отслеживание значений переменных и свойств объектов

2 Использование специальных окон (меню View)
Local

Window -окно- локальных переменных
Immediate Window – окно отладки
Watch Window – окно контрольных переменных

1 Если выполнение программы приостановлено – можно подвести указатель мыши к переменной или свойству

Local Window

Immediate Window

Watch Window

Слайд 10

Local Window Позволяет наблюдать за значением всех локальных переменных

Local Window

Позволяет наблюдать за значением всех локальных переменных

Слайд 11

Watch Window Watch Window (окно контрольных выражений) позволят наблюдать за выбранными разработчиком переменными или свойствами

Watch Window

Watch Window (окно контрольных выражений) позволят наблюдать за выбранными разработчиком

переменными или свойствами
Слайд 12

Immediate Window

Immediate Window

Слайд 13

Ошибки выполнения (run-time) Возникают, например, тогда, когда программа запущена на исполнение

Ошибки выполнения (run-time)

Возникают, например, тогда, когда программа запущена на исполнение

и пытается выполнить операцию, которую не может выполнить операционная система
Слайд 14

Ошибки выполнения Перехват ошибок во время выполнения

Ошибки выполнения Перехват ошибок во время выполнения

Слайд 15

Создание обработчика ошибок включает в себя три шага: 1. установка перехвата

Создание обработчика ошибок включает в себя три шага: 1. установка перехвата ошибок 2.

написание кода обработки ошибок 3. создание выхода из обработчика ошибок
Слайд 16

Внутри процедуры можно корректно обрабатывать возникающие ошибки при помощи оператора On

Внутри процедуры можно корректно обрабатывать возникающие ошибки при помощи оператора On

Error При возникновении любой ошибки при выполнении программы VBA ищет оператор On Error. Если - находит, то ошибка обрабатывается. Если - не находит, то программа прерывается на ошибочном операторе, и выдается системное сообщение об ошибке.
Слайд 17

On Error Go To Метка - если в процедуре возникает ошибка

On Error Go To Метка - если в процедуре возникает ошибка

, то происходит перехват ошибки и управление передается в начало обработчика ошибок. Начало обработчика задается меткой.
On Error Resume Next передается управление оператору следующему за обработчиком ошибок (игнорирование ошибок)
On Error Go To 0 – отключение обработчика ошибок.
Слайд 18

Оператор Err содержит информацию об ошибке Некоторые его свойства ERR Err.Number

Оператор Err содержит информацию об ошибке Некоторые его свойства ERR Err.Number номер

ошибки (Err.Number=0 ошибка отсутствует) Err.Describtion – строка, содержащая описание ошибки Err.Source - строковое выражение , показывающее источник , где произошла ошибка После успешной обработки ошибки можно ошибку сбросить Err.Clear
Слайд 19

Возврат из обработчика ошибок Resume – возвращает управление оператору, создавшему ошибку

Возврат из обработчика ошибок Resume – возвращает управление оператору, создавшему ошибку (позволяет повторить

операцию, вызвавшую ошибку после ее исправления) Resume Next – передает управление оператору за ошибочным Resume Метка - передает управление оператору с меткой
Слайд 20

Цепочка вызовов Sub One() On Error Goto Check: Two … Check:

Цепочка вызовов

Sub One()
On Error Goto Check:
Two

Check:
Resume Next
End Sub
Sub Two (

)
Three
End Sub
Sub Three( )
‘Происходит ошибка
‘Нет обработчика
End Sub