为什么我的try不能捕获错误 ( 积分: 100 )

  • 主题发起人 主题发起人 publicnews
  • 开始时间 开始时间
P

publicnews

Unregistered / Unconfirmed
GUEST, unregistred user!
执行到Post时由于不允许的空值会有一个错误产生,但为什么我用下面语句却无法捕获这个错误,实在不解,我的ShowMessage执行不了

try
DataServiceMaster.Dataset.Post;

except
ShowMessage('abc');
//on E:Exception do
//begin
//ShowInfo(mtError,[mbOK],'保存错误','保存数据时发生错误,请检查你的数据是否正确完整!'+#13+'错误信息如下:'+#13,0);
//end;
end;
ShowMessage('test');
 
执行到Post时由于不允许的空值会有一个错误产生,但为什么我用下面语句却无法捕获这个错误,实在不解,我的ShowMessage执行不了

try
DataServiceMaster.Dataset.Post;

except
ShowMessage('abc');
//on E:Exception do
//begin
//ShowInfo(mtError,[mbOK],'保存错误','保存数据时发生错误,请检查你的数据是否正确完整!'+#13+'错误信息如下:'+#13,0);
//end;
end;
ShowMessage('test');
 
你跟踪一下代码。
 
你是用ado连接数据库的吧,ado的错误是不能这样捕获的,你最好是自己写代码保证不出现空值,因为捕获ado错误十分烦琐。如果你一定要捕获ado错误,翻翻旧贴吧。
 
你的 DataServiceMaster 是 AdoTable 还是 AdoQuery 或者是?
不同的控件有不同的处理方法。
 
是自已写的一个数据集接口,用ADO实现的
在生成的EXE中可以捕获,但在IDE中运行时不能,为什么
 
也应该能的,不过在IDE中运行的时候是先弹出系统的错误对话框,你把它关掉以后接着运行你的程序,就会执行你自己的错误处理。
 
多人接受答案了。
 
后退
顶部