Основы языка Visual FoxPro


Реакция на события - часть 3


On error MessageBox( Ошибка! )

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

Функция LocFile() возвращает имя выбранного пользователем файла, но если пользователь отказывается от выбора, то происходит ошибка. Попробуем ее отследить:

local lcSelectedFile, llError, lcOnError

llError = .F.

lcOnError = ON("ERROR")

On Error llError = .T.

lcSelectedFile = locfile("readme.txt", "txt, me", "Файл")

On Error &lcOnError

if llError MessageBox("Файл не выбран")

else

Modify file (lcSelectedFile)

endIf

Комментарии к примеру: В переменной lcSelectedFile сохраняется полное имя выбранного файла, переменная llError сначала устанавливается в .F. и, в случае ошибки в .T., lcOnError сохраняет предыдущую установку ON ERROR, которая считывается функцией ON( ERROR ), восстанавливается установка макроподстановкой &lcOnError, файл открывается с помощью команды Modify file (lcSelectedFile). И еще комментарий, не нужно принимать этот пример в качестве оптимального решения. На самом деле все можно сделать куда более элегантнее, это всего лишь пример перехвата ошибки (реакции на ошибку) в процессе выполнения программы.




Начало  Назад  Вперед



Книжный магазин