调查:编程习惯-对不可预料的错误信息提示(100分)

H

ht99

Unregistered / Unconfirmed
GUEST, unregistred user!
用程序实现一笔业务处理在正常情况下是很容易实现的,并不会引起什么错误,但总是存在
不正常的时候,也就是发生不可预料的错误,请教各位,你们是怎么处理这些不可预料的错
误的?
 
尽量结构清晰,代码简单化。然后……
我雇佣我女朋友测试来发现问题,呵呵。
 
尽量给出提示。
 
视门2000的方法不错,我也是那样做的
数据库的时候用基类捕捉错误信息,然后提示向本人联系这样正版用户就多啦
别的用GetLastError捕捉错误
 
不一定什么错误信息都需要捕捉,有些事情可以交给操作系统去做。
否则,你的系统会变得冗长,效率不高。
 
在系统正常的情况下,没有不声不响就退出的错误,也不要有弹不完的出错对话框的错误就行了。
 
象MFC类库中的函数都有一个ErrorCode(GetLastError),这是怎么实现的?
 
对程序进行狂测试,方方面面考虑到。。。
再测试,再改
 
我基本上是这样做的:
Try
....
except
on E:execptiondo
begin
showmessage(E.message);
.....
end;
end;
 
try用的比较多,
不过也有不管的时候,比如数据库的键错误,就不理它,谁叫使用者自己录入错误呢?
 
我发这个调查的本意,对一个算法比较复杂的程序,如何能很方便地给用户出错信息,如何能
在程序中便捷地捕捉到出错,我觉得MsSdk中的GetLastError很好,但不知有没有哪位能给出更
好的见解。
 
一般用TRY,没抓到的在Application.OnException里处理
 
API出错可以用: raise ExceptionClass.Create(SysErrorMessage(GetLastError));
异常只要是中文你就不用管它了,Application自动弹出个对话框来提示并中止运行。
所以一般我看到什么什么出错了后:就来一句:
raise ExceptionClass.Create('中文信息。')
 
还是把工作做在软件销售之前。
 
既然异常无法预料,当然也就无法处理。
我觉得还是重建Application.OnException,将无法处理的Exception记录为Log文件,然后
让用户发过来,重新解决才是,显示的错误信息可以像Windows学习,MessageBox("Unknown Error.")
然后Halt应用程序,防止错误进一步蔓延。
 
代码结构清晰是关键,尽量将能发生的错误用中文提示出来,
 
try
...
except
...
end
仅此而已
 
application.onexception替换为对话框,可以终止程序,以免错误蔓延。
 
try
.......
except
Application.messagebox('请使用正版软件并缴纳注册费,否则被起诉','警告',mb_iconwarning);
end
 
顶部