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

          Назад



6.1 Типы ошибок


Ошибки в программах VBA, синтаксические и логические ошибки, ошибки времени выполнения (run-time errors)

Если вы выполняли все задания для самостоятельной работы, то, наверное, уже заметили, что при написании программного кода допустить ошибку очень просто. Одна из задач разработчика — найти эти ошибки и устранить их (или — для ошибок времени выполнения — обеспечить перехват этих ошибок и нормальную работу приложения даже в случае возникновения этих ошибок).

Все ошибки можно разделить на три большие группы:

  • синтаксические (неправильно написан оператор, имя переменной и т.п.). Такие ошибки не требуют больших усилий по их поиску и исправлению. Многие синтаксические ошибки "отлавливаются" редактором кода VBA еще в процессе ввода кода. Об обнаружении других сообщается в ходе компиляции и запуска программы. При этом компилятор VBA выдает информацию о том, в какой строке кода обнаружена ошибка, и в чем она заключается. Рекомендуется проверить данную строку по справке VBA.
  • логические — в ходе выполнения программа ведет себя не так, как вы планировали. Главное здесь — понять, почему программа так себя ведет. Как правило, для выявления и исправления ошибок такого типа и предназначены приемы отладки (см. следующий раздел).
  • ошибки времени выполнения (run-time error) — в процессе выполнения программа столкнулась с проблемой, решить которую она не в состоянии (файл с таким именем уже существует, возник конфликт записей при вставке в базе данных, произведена попытка записать информацию на переполненный диск и т.п.). Заранее предугадать, что какая именно неприятность может случиться, очень сложно. Во многом квалификация программиста определяется тем, как он умеет предугадать возможность возникновения ошибок времени выполнения и обеспечить их перехват и обработку.

Если программа делается "для себя" — чтобы автоматизировать работу того пользователя, который пишет эту программу, то очень часто перехват ошибок времени выполнения вообще не предусматривается. Возникла ошибка — ничего страшного: открыли программу в отладчике, посмотрели, отчего возникла ошибка, и "исправились". Но если программа пишется для передачи другим пользователям (особенно не очень квалифицированным), то на реализацию обработки ошибок времени выполнения обычно уходит больше времени, чем на создание самой логики программы.




Далее