Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从类的基类捕获异常_C#_Exception Handling_Base Class - Fatal编程技术网

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,只有在基类的契约中定义了要捕获异常的方法时,这种方法才可行。这种方法不适用于基类不了解的方法。