笔者在开发应用系统中曾经用FoxPro的on error语句编写了一个判断内存变量的函数Exist(),非常方便实用,在此介绍给大家。
设计思路:先假设内存变量存在,然后将待判断的内存变量赋值给一个临时变量,若该内存变量不存在,则执行时必将出错,出错时将执行on error语句,只要在on error处理的函数中修改内存变量存在与否的标志即可。为了不影响调用程序的错误处理,保证该函数的通用性,在函数执行前后必须保存和恢复调用程序可能的错误处理。
源程序如下:
***EXIST?PRG***
para MemoVari
private Mexist,temp,OldError
Mexist=.T.? 假设内存变量存在
OldError=on(′error′) 保存调用程序的错误处理
on error do ErrHandle
temp= MemoVari
on error OldError 恢复调用程序的错误处理
retu Mexist 返回存在标志
proc ErrHandle
Mexist=.F. 出错则置存在标准为.F.?