После начала исполнения приложения в run time могут происходить ошибки. Например, ошибки могут происходить в run time в перечисленных ниже операциях:

Вы можете обрабатывать такие ошибки, включая ошибки, которые случаются в отчетах и также в таблицах с нарушенной ссылкой на базу данных, используя обработчики, которые предоставляет Visual FoxPro. Однако, если ваше приложение не содержит процедур обработки ошибок для случаев возникновения ошибок в run time, приложение приостанавливается и появляется соответствующее системное сообщение Visual FoxPro об ошибке со следующими командными кнопками:

Обратитесь к описанию Сообщения об ошибках для просмотра списка и разъяснений по каждому сообщению об ошибке Visual FoxPro.

NoteСовет

Для ошибок, которые вы не смогли избежать ил предусмотреть убедитесь, что предоставили в документации к приложению описание ошибок, которые может увидеть пользователь и описали способ коррекции подобных ошибок.

Использование процедур обработки ошибок

Вы можете использовать язык Visual FoxPro для создания процедур обработки ошибок для условий, в которых они могут возникнуть. Перечисленные ниже статьт справки объясняют несколько механизмов для обработки run-time ошибок и порядок их действия:

Исполнение последней исполненной строки кода

Вы можете использовать команду RETRY, за исключением случая TRY...CATCH...FINALLY, для исполнения той последней строки кода, которая вызвала ошибку после обработки условия, которое вызвало такую ошибку.

NoteЗамечание

Иногда, такой последней строки кода вызвавшей ошибку может и не существовать, поэтому ее повторное исполнение с помощью RETRY невозмодно. Событие Error может наступить даже когда случилась ошибка не связанная со строкой вашего кода. Например, если вы вызываете метод окружения данных CloseTables в коде, когда значение свойства AutoCloseTables установлено в True (.T.) и затем высвобождаете форму, Visual FoxPro сгенерирует внутреннюю ошибку, когда он попытается повторно закрыть таблицы. Вы можете отловить ошибку; однако, не существует строки кода, к которой можно было бы вернуться с помощью команды RETRY.

Для получения более подробной информации смотрите описание команды RETRY.

Смотрите также