C# 从类的基类捕获异常
我有一个基类,我想捕获基类中派生类的所有异常,这可能吗C# 从类的基类捕获异常,c#,exception-handling,base-class,C#,Exception Handling,Base Class,我有一个基类,我想捕获基类中派生类的所有异常,这可能吗 您不知道派生类中的方法是什么。您需要提供有关特定场景的更多详细信息。但是,例如,如果您有一个提供协定的基本抽象类,并且希望在调用基类协定时捕获派生类引发的所有可能异常,则可以执行以下操作: public abstract class Base { protected abstract void InternalFoo(); protected abstract void InternalBar(); public
您不知道派生类中的方法是什么。您需要提供有关特定场景的更多详细信息。但是,例如,如果您有一个提供协定的基本抽象类,并且希望在调用基类协定时捕获派生类引发的所有可能异常,则可以执行以下操作:
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 { /* ... */ }
}
}
通过调用类,您是指派生类,还是指从基类派生的类调用方法的非相关类
我想你可以把你的基变成一个代理类。查看一个示例。您可以添加一些代码来解释您的场景吗?如果派生类有一些不调用基类的方法怎么办?您的需求似乎不可能以通用方式实现。您所说的“调用类”是什么意思?您是指派生类中的所有异常吗?是的,这是一种可能的方式,您可以不使用抽象类来实现吗?因为我不知道派生类中的方法是什么class@Coppermill,只有在基类的契约中定义了要捕获异常的方法时,这种方法才可行。这种方法不适用于基类不了解的方法。