【发布时间】:2012-04-15 20:28:10
【问题描述】:
您好,我正在尝试进行一些异常处理并拦截重复的字段值(键违规)错误。在我寻找解决方案的过程中,我看到了许多使用
来捕获所有错误的建议try
(enter code)
except on E: EDatabaseError do
showmessage (Error message);
end;
但我想专门响应密钥违规,它使用使用 ADO 的访问表。
【问题讨论】:
-
什么具体标识了您希望捕获的异常?
-
当我使用已经存在的客户端 ID(主键)向我的系统添加新客户端并返回以下消息时, - 引发异常类 EOleException 并带有消息“您请求的更改表不成功,因为它们会在索引、主键或关系中创建重复值'
-
那么如果我再次运行,将返回相同的消息,但使用 EDatabaseError 而不是 EOleException
-
是的,但在错误消息中我希望能够声明输入的客户端 ID 已经存在,并且使用一般异常可能会捕获与客户端 ID 无关的其他各种错误,这些错误肯定已经存在跨度>
-
看看例如在
this article.