Können wir catch-Ausnahme von der Kind-Klasse Methode in der Basis Klasse in C#?
In einem interview interviewer fragte mich, diese Frage.
Können wir catch exception geworfen, die von einer untergeordneten Klasse Methode in der Basisklasse?
Ich sagte Nein, aber er sagte ja, es ist möglich.
Deshalb möchte ich wissen, ist dies überhaupt möglich und wenn ja, bitte geben Sie mir irgendein Beispiel aus der Praxis.
Sie haben nicht nennen-Basis-Klasse-Methode.
Danke.
- In welchem Zusammenhang? Wenn du meinst eine virtuelle Methode, die überschrieben direkt, dann gibt es keinen Weg für eine Basis-Klasse zum abfangen einer Ausnahme in der Kind-Implementierung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier gehen Sie:
SomeMethod
definiert die Basisklasse ruft eine andere MethodeSomeOtherMethod
des gleichen Objekts und fängt alle Ausnahmen. Wenn Sie überschreibenSomeOtherMethod
in einigen untergeordneten Klasse und es wirft eine Ausnahme, dann ist gefangen inSomeMethod
definiert in der Basisklasse. Die Sprache, in der deine Frage ist ein wenig zweideutig ist (technisch zur Laufzeit ist es immer noch die Instanz derChildClass
tun, exception handling), aber ich gehe davon aus, dass dies ist, was Ihre interviewer wollte.Andere Möglichkeit (wieder, je nach interpretation) ist, dass eine Instanz der Basis-Klasse ruft eine Methode eines verschiedenen Objekt erbt, sagte die base-Klasse, welche eine exception wirft (und dann fängt die Ausnahme):
Hier, wenn
BaseClass.SomeMethod
genannt wird, ein Instanz einer Basisklasse fängt eine geworfene Ausnahme in eine andere Instanz von eine Kind-Klasse.Hier ist ein einfaches Beispiel, in dem eine Basisklasse abfangen einer Ausnahme von einer abgeleiteten Klasse.