4

我有一个基类,我想在基类中捕获派生类的所有异常,这可能吗?

您不会知道派生类中的方法是什么。

4

2 回答 2

2

您需要提供有关您的特定方案的更多详细信息。但是,例如,如果您有一个提供协定的基抽象类,并且您希望在调用基类协定时捕获派生类抛出的所有可能异常,您可以执行以下操作:

public abstract class Base
{
    protected abstract void InternalFoo();
    protected abstract void InternalBar();

    public void Foo()
    {
        try { this.InternalFoo(); }
        catch { /* ... */ }
    }

    public void Bar()
    {
        try { this.InternalBar(); }
        catch { /* ... */ }
    }
}
于 2010-04-09T10:06:23.763 回答
1

调用类是指派生类,还是从基类派生的类调用非相关类的方法?

我想你可以把你的基地变成一个代理类。请参阅动态代理示例。

于 2010-04-09T10:06:24.207 回答