关于异常处理的问题. ( 积分: 50 )

  • 主题发起人 主题发起人 蜉蝣小生
  • 开始时间 开始时间

蜉蝣小生

Unregistered / Unconfirmed
GUEST, unregistred user!
在dbgrideh的UpdateData事件里面用到了下面的计算
procedure TFrmcg.DBGridEh3Columns2UpdateData(Sender: TObject;
var Text: String; var Value: Variant; var UseText, Handled: Boolean);
begin
adoquerymq.FieldByName('耗量').AsFloat:=sswr(((strtofloat(dbediteh13.Text)+strtofloat(dbediteh11.Text))*3.14*strtofloat(text)/2)*adoqueryall.fieldbyname('单耗').AsFloat*adoquerymq.FieldByName('次数').AsInteger/100);
adoquerymq.FieldByName('金额').AsFloat:=adoquerymq.fieldbyname('耗量').AsFloat*adoqueryall.fieldbyname('单价').AsFloat;
end;

如果用户不经意输入了不合法的字符,在进行计算的时候就会出现一个异常,并且这个异常还不能自己跳出.我的程序里面有好多这样的过长,如果用if ...else 判断那么要判断的情况太多了,不可能每种情况都想到,请问高手有什么好的方法
 
try
代码
except
end;
 
试过的,跳不出来的,因为这个事件很特殊,是updatedata事件.
 
高手帮帮忙啊
 
try
代码
except
handled:=true;
end;
 
接受答案了.
 
后退
顶部