|
作用:用VFP编制的程序由于多方原因如果出现错误,系统会弹出一系列破坏软件整体形象的错误提示,显得很不专业,也为让用户感到厌烦。当用户向你诉说错误情况时,由于不专业很难将情况如实讲清,给你找到错误原因带来难度,那有没有什么方法既可以在出现错误时显示友好的错误信息又能给编程者提供真实的错误代码呢?有,下面这段代码就能解决以上问题。它会在出现错误提示友好的信息,又会自动生成一个错误表,好让程序员根据错误表的记录修改程序,解决问题! 用法: 在主程序中加入以下代码 *-------------帐号全局变量------------ PUBL mypath *-----------设置软件所在的目录------------- set default to sys(5)+sys(2003) mypath=sys(5)+sys(2003) ERR_FILE =MyPath+"\ERR_DBF.DBF" &&程序出错库 ON ERROR DO ERR_PRG WITH PROGRAM(),LINENO(),ERROR(),MESSAGE(),MESSAGE(1) &&定义错误处理程序 *---错误处理代码段----------------- PROCEDURE ERR_PRG PARAMETERS M_PROGRAM,M_LINEO,M_ERROR,M_MESSAGE,M_1 WORK_=SELE() SELE 9 IF NOT(FILE(ERR_FILE)) CREATE TABLE(ERR_FILE) (错误程序名 C(40),行号 C(5),错误信息 C(40),错误内容 C(40),错误代码 C(5),出错日期 C(8),出错时间 C(8)) INSERT INTO &ERR_FILE (错误程序名,错误信息,出错日期) valueS ("主程序","创建出错库",DTOS(DATE())) INDE ON 出错日期 TAG 出错日期 USE Set Exclusive Off &&重新定义共享方式打开 ELSE USE &ERR_FILE SHAR APPE BLANK REPL 错误信息 WITH M_MESSAGE,错误内容 WITH M_1,出错日期 WITH DTOS(DATE()),出错时间 WITH TIME(),错误程序名 WITH M_PROGRAM,; 行号 WITH LTRIM(STR(M_LINEO)),错误代码 WITH LTRIM(STR(M_ERROR)) ENDIF USE IN 9 SELE (WORK_) =MESSAGEBOX(M_MESSAGE+CHR(13)+CHR(13)+"错误出现在“"+M_PROGRAM+"”代码段,第"+LTRIM(STR(M_LINEO))+"行!",16,"程序错误,请与作者联系!") QUIT &&显示错误消息后,退出程序 RETURN
|
|