FoxBASE+错误捕获程序

Author: 朱才军 Date: 1997-01-01

#3  对于FoxBASE+的用户来讲,程序调试是件非常麻烦的事情,特别是大的管理系统。因为FoxBASE+不像PASCAL、C等高级语言那样由编译系统检查错误,并能直接返回到源程序中,FoxBASE+只能在运行时查错,修改后不能返回到源程序。前一个问题是系统本身的问题,不能解决,但后一个问题是可以由用户自行解决的,笔者自己编制了一个小程序,具体如下:

#3  **错误捕获及处理程序**ERR.PRG**
  CLEAR
  ?'程序'+SYS(16,1)+'中出现错误!'
  ?'出错语句'+STR(error(),4)
  ?'错误信息:+MESSAGE()
  a=SYS(16,1)
  *将错误语句所在程序名赋给a
  YN=' '
  @5,0 SAY '修改(M) 跳过(J) 退出(Q) 请选择!'
  @5,30 GET YN VALID YN $ "MJQ" PICT '!'
  READ
  DO CASE
  CASE YN='M'
  MODI COMM &a
  RETURN
  *选择'M',则返回原程序进行修改,修改完后存盘,系统自动从原错误处开始继续运行程序
  CASE YN='Y'
  RETURN
  *选择'J',则忽略错误,继续向下执行程序
  CASE YN='Q'
  QUIT
  *选择'Q',则关闭所有文件,并退出系统
  ENDCASE
  RETURN
  使用该程序,只需将该程序拷到需调试程序所在的目录下,然后在需调试程序首部加上命令语句ON ERROR DO ERR就可以了
#3  调用举例
  **EXP.PRG**
  ON ERROR DO ERR
  ?A
  ?B
  ?C
  ON ERROR
  RETURN