高分请求异常对象问题,

mnlisa 2003-09-29 10:17:45
请问在help中怎么方便的找到对数据库操作失败时返回的所有可能的异常对象的帮助呢?
如ENosultset, EupdateError这些。

方便的话,帮我列出所有的异常对象,或者教我如何快速的找到这些异常对象的说明信息。

我这个问题,系统不能让我给超过100的分,不过,我可以转分的。
...全文
59 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mnlisa 2003-09-30
  • 打赏
  • 举报
回复
也就是说,子类的异常没有处理,他会往上抛,直到在它的父类中处理或者抛给系统处理 ,是相同概念吗???

还是说只要是C从B那里继承来的,B是从A那里继承来的,只要在程序中捕捉A 对象的异常,C,B对象发生的所有异常都能被程序捕捉到?
mnlisa 2003-09-30
  • 打赏
  • 举报
回复
to tonylk:
呵呵 , C就好比是EBDEError类, B就好比EDatabaseError的类,A就是Exception的类。

我也懂你的意思,你的第二段就相当于回答了我的第一段问题。
tonylk 2003-09-30
  • 打赏
  • 举报
回复
不太明白你说的什么意思,好像不太正确,
异常类和你实现程序的类继承是没有关系的,所有的异常都是从Exception类继承下来的,EDatabaseError就是它的一个子类,假设EDatabaseError下游两个子类:EAdoError,EBDEError,那么使用
on E:EDatabaseError do
。。
就可以捕获所有EDatabaseError和它的子类(EAdoError和EBDEError)类型的异常,对于你没有用try...except...捕获的异常,或者在Except中又用raise抛出的异常,它会按照堆栈内函数的调用次序一层层往上抛,直到被捕获或者最后被delphi的默认异常处理函数处理。这个和类怎么继承的没有关系。
tonylk 2003-09-29
  • 打赏
  • 举报
回复
这样就能捕获所有错误了呀,不一定非要搞清是哪个exception对象的。
try
...
except
on E:Exception do
..
end;

另,如Cipherliu(孤鹰) 所说的,大多数数据库exception也会从EDatabaseError继承下来,捕获它就可以了。
Cipherliu 2003-09-29
  • 打赏
  • 举报
回复
用搜索的办法,在Delphi的源码中找所有的从EDatabaseError类中继承的类

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧