Frage

Ich habe eine Basisklasse, und ich möchte alle Ausnahmen von der abgeleiteten Klasse in der Basisklasse fangen, ist das möglich?

Sie werden nicht wissen, was die Methoden der abgeleiteten Klasse sind.

War es hilfreich?

Lösung

Sie benötigen weitere Informationen über Ihr spezielles Szenario zu liefern. Allerdings, wenn Sie zum Beispiel eine Basis abstrakte Klasse, die einen Vertrag bietet, und Sie möchten alle möglichen Ausnahmen von abgeleiteten Klassen geworfen fangen, wenn die Basisklasse Vertrag aufrufen können Sie etwas tun:

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 { /* ... */ }
    }
}

Andere Tipps

Mit dem Aufruf Klasse Sie eine abgeleitete Klasse bedeuten, oder eine nicht-verwandte Klasse Methoden aus einer Klasse von Ihrer Basis abgeleitet nennen?

Ich denke, man kann tun, dass Ihre Basis in eine Proxy-Klasse drehen. Hier finden Sie eine dynamischen Proxy Beispiel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top