Ich weiß in C# wir brauchen keine Methode, um die Ausnahmen in Methodensignatur explizit zu definieren, die es werfen könnte. Aber ich würde gerne wissen, wie wir mit Szenarien umgehen, in denen die Aufrufer-Methode die möglichen Ausnahmen behandeln will, die durch die aufgerufene Methode ausgelöst werden?Wie weiß die aufrufende Methode, welche Ausnahmen von der aufgerufenen Methode ausgelöst werden?
Lassen Sie mich mit meiner Frage klar sein.
Angenommen, es ist eine Methode in einer DLL-Datei definiert als
public string DoSomething()
{
// This method do something and returns a string
}
Jetzt als Anrufer Ich habe Kenntnis davon, welche Methode erwartet und was es gibt als result.But wie kann ich wissen, was die möglich sind Ausnahmen, die von dieser Methode ausgelöst werden.
In jave haben wir wirft keyword. Wenn ich also in Java gleiche Methode wurde definiert, dann könnte ich so etwas wie unten
getan habenpublic String doSomething() throws SomeException {
// do something
throw new SomeException();
}
Auf diese Weise Aufrufer dieser Methode weiß, was Ausnahmen auf ihrer Seite behandelt werden müssen.
Wie erreichen wir dies in C#, da C# nicht das Schlüsselwort in Methodensignatur hat?
Ein möglicher Weg wäre, ein generisches Exception Objekt zu fangen. Aber wieder eine generische Ausnahme zu fangen ist eine schreckliche Möglichkeit, mit Ausnahmen umzugehen.
Sie können immer Xml-Kommentare verwenden und dort alle Ausnahmen auflisten, die diese Methode auslöst. Auf diese Weise werden Sie in der Lage sein zu sehen, während der Eingabe wegen Intellisense –
Selbst mit Java, Sie nicht nur Pokemon Ausnahmebehandlung verwenden und es einen Tag nennen. In jedem Fall müssen Sie verstehen, welche Ausnahmen die Methode auslöst, mit der der Aufrufer * rational umgehen kann und die immer eine menschliche Interpretation erfordert. –
@Damien_The_Unbeliever Ja, aber in Java, wenn die aufgerufene Methode eine einheitliche oder benutzerdefinierte Ausnahme zurückwirft (für alle Ausnahmen, mit denen diese Methode zu tun hat), muss sich der Aufrufer nur um diese Ausnahme kümmern. Aber in C# wie weiß selbst Anrufer, was zu handhaben ist, da Methodensignatur nichts gibt. Gibt es neben den Antworten von m.rogalski und user3185569 noch eine andere Möglichkeit, dies zu erreichen? Bei allem Respekt, aber ein Java-Entwickler zu sein, überzeugt mich nicht, alle Ausnahmen zu definieren, die von meiner Methode in einer XML-Datei ausgelöst werden. – amanraj