不太明白你说的什么意思,好像不太正确,
异常类和你实现程序的类继承是没有关系的,所有的异常都是从Exception类继承下来的,EDatabaseError就是它的一个子类,假设EDatabaseError下游两个子类:EAdoError,EBDEError,那么使用
on E:EDatabaseError do
。。
就可以捕获所有EDatabaseError和它的子类(EAdoError和EBDEError)类型的异常,对于你没有用try...except...捕获的异常,或者在Except中又用raise抛出的异常,它会按照堆栈内函数的调用次序一层层往上抛,直到被捕获或者最后被delphi的默认异常处理函数处理。这个和类怎么继承的没有关系。