2020
错误处理
大多人都把错误处理弄错了。不知道什么时候,大家开始论坛下载了所谓的错误处理程序,一股脑的加在主函数中。这个所谓的处理函数,就是不断地弹出错误提示对话框,这样的错误处理,根本没有处理过任何错误,唯一做的就是不断地弹窗。还不如不要。
1 错误处理,是解决掉错误
程序出错,捕捉到错误,且停止执行原来程序,转到错误处理,比如文件被占用,我们再试下能不能打开,能打开,我们静悄悄就把这事做了,或者高调地替用户解决了。
2 错误处理,不能解决是要上报的
程序出错,捕捉到错误,且停止执行原来程序,转到错误处理,但是程序无法恢复,那就是要退出主程序,并启动错误发送界面,将环境信息,错误信息收集起来,写日志或者给开发者发送邮件。
这里分享一下老外的错误发送程序,我进行了微调
里面有四个文件,把它们放进你的软件目录
errorhandler.prg
issues.scx
issues.sct
myfll.fll
3 在你的主函数加载如下代码
*--运行环境
If !Inlist(_vfp.StartMode,0)
Close All
*!* 错误处理
On Error Do ErrorHandler With Error( ), ;
Message( ), ;
Message(1), ;
Program( ), ;
Lineno(1),;
"祺佑食品安全系统"
Endif
这样子就OK吧,我们在主函数中主动触发一个错误,来看看效果
我的邮箱就收到消息啦