我有一个基类,我想在基类中捕获派生类的所有异常,这可能吗?
您不会知道派生类中的方法是什么。
您需要提供有关您的特定方案的更多详细信息。但是,例如,如果您有一个提供协定的基抽象类,并且您希望在调用基类协定时捕获派生类抛出的所有可能异常,您可以执行以下操作:
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 { /* ... */ }
}
}
调用类是指派生类,还是从基类派生的类调用非相关类的方法?
我想你可以把你的基地变成一个代理类。请参阅动态代理示例。