标题FOXPRO的一种容错技术——测试法
栏目软件大世界
作者应森林
发布1997-01-01
常有一类错误,例如要访问的文件不存在或文件错误,外部设备未准备好,外存空间不够,数据溢出等,往往不会被FOXPRO系统所发现。对这类的错误较常用的容错技术是测试法。所谓测试法是指用FOXPRO的测试函数为程序中所要进行的操作,检测其必需满足的前提条件,若不满足,该操作进行进将发生错误。它是一种预测,预心程序运行错误的有效方法。
常用几种测试函数容错实例
1.FILE()检测文件是否存在,以防打开文件时出现“文件不存在”的错误
IF FILE(“ABC.DBF”)
USE ABC.DBF
ELSE
?“ABC.DBF文件不存在”
ENDIF
2.EOF()检测记录是否已到库文件尾,以防指针定位库文件尾后,操作出错。
GO TOP
DO WHILE .T.
.
.
SKIP
IF EOF()
EXIT
ENDI
ENDDO
3.YTPE()检测变量的类型,以防对不迪型变量的误操作
USE ABC.DBF
IF TYPE(“基本工资”)=“N”
REPLACE ALL 基本工资 WITH 基本工资+基本工资*0.1
ENDIF
4.DISKSPACE()检测磁盘空间的字节数,以房文件操作时“外存空间不够”。
USE ABC.DBF
SIZE=33+32*FCOUNT()+RECOUNT()*RECSIZE()
IF DISKSPACE()<SIZE
? “磁盘空间不够”
RERU
ENDIF
COPY TO A:CCC.DBF
.
.
其中FCOUNT()求字段数,RECOUNT()求记录个数,RECSIZE()求记录长度。
5.USED()测试数据库文件是否正在使用,若对非当前库操作则会出错。
NA=“ABC.DBF”
IF .NOT.USED()
? NA+“非当前数据库”
USE &NA
ENDIF
6.SYS(13)(或PRINTSTATUS)检测打印机状态是否准备好,若未准好提醒用户纠正。
DO WHILE SYS(13)=“OFFLINE”
WAIT “请把打印机准备好,按任一健”
ENDDO
SET PRINT ON