Zitat |
Ich würde nur die Exceptions catchen, die in meinem Fall auftreten können und am Ende würde ich die allgemeinste Exception Klasse catchen. |
Ich sehe das wie gfoidl - Exceptions catchen nur, wenn notwendig oder Du sie wirklich behandeln kannst.
Also wenn das Programm/der Thread abstürzen würde, der Click-EventHandler vom Button zuende ist, etc. - dann darfst Du generell fangen und ggf. loggen oder eine Fehlermeldung anzeigen. Ansonsten ist ein Catch nur sinnvoll, wenn Du über das Catch einen alternativen Ablauf steuern kannst, der genauso zum gültigen Ergebnis führt.
Es gäbe aber noch einen Fall:
Du wirfst im Catch die Exception weiter (nur "throw;" nicht "throw ex;"), das erlaubt dir vorher z.B. den Zustand aufzuräumen.
Kein "throw ex;" deshalb, weil dabei der StackTrace verloren geht, das würde die Exception wie eine neue Exception behandeln und das willst Du nicht.
Exceptions fangen und eigene Exceptions werfen
kann sinnvoll sein, ist aber mit Vorsicht zu genießen - und dann solltest Du das Original möglichst als InnerException beibehalten.
Das kann z.B. sinnvoll sein, wenn Du mehrere Implementierungen einer Schnittstelle hast, die je Implementierung auch die gleichen Exceptions werfen muss, damit der Aufrufer die unterschiedlichen Exception-Typen nicht beachten muss.