请教各位:
我用ado连接Access,Form用了一个adotable现在我要保存新记录,但要捕获“主键重复”错误, 但是不行try
   ADOTable1.Post;
except
   MessageBox(Handle,'wrong','Warning',MB_OK);
end;以上代码应该捕获所有错误,可是执行到ADOTable1.Post,如果有主键重复,不是死机,就是系统弹出错误框:“eoleexception...........谢谢

解决方案 »

  1.   

    我又试了一次原来在debug下面不会capture error我直接运行就没问题。why?
      

  2.   

    如果在delphi下运行,try捕获的错误还是要出现的。我们就可以知道这个地方还有错误,而exe则彻底屏蔽了这个错误。
      

  3.   

    都是这样子的。
    用了TRY的。
    先执行try下面的,当出错的时候就用except
    不过系统要执行才知道出错没有。
    所以在编辑环境中是跳不到except中去的。
    你直接运行EXE文件就可以了。
    :)
      

  4.   

    主键重复是Database的一个错误,所以你的表post是捕获不到的,你必须通过DATABASE进行捕捉
      

  5.   

    try
      ...
    except
      ....
    end;  在DEBUG环境下,当执行Try下面的语句发生错误的时候,
      是不会直接跳到except下面的代码去的.
      (因为系统要先执行你的代码,才会知道是否发生错误,当出现错误的时候就跳到except中去
      但是,现在执行代码就发生了错误程序不能继续运行了,也就不能跳到exept中去.)
     
      所以发生在deubg下面会直接发生错误不能执行代码.
      (再次按一下F9)就可以看到except下面的运行结果. 
      

  6.   

    也可以在Delphi中设置:
    Tools-Debugger Options-Language Exceptions
    不使用Stop On Delphi Exceptions,这样的效果一样的Try-Except是可以捕获错误的