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