Ich versuche, herauszufinden, was die richtige Form der Ausnahmen zu werfen wäre für eine Bibliothek, die ich schreibe. Ein Beispiel dafür, was ich behandeln muss, ist die Anmeldung eines Benutzers an einer Station. Dies geschieht durch Scannen eines Ausweises. Mögliche Dinge, die schief gehen könnten, sind:
- Ihr Ausweis ist deaktiviert
- Sie haben keine Erlaubnis, an diesem Bahnhof zu arbeiten.
- Der gescannte Ausweis ist nicht im System vorhanden
- Sie sind bereits an einer anderen Station angemeldet
- Die Datenbank ist ausgefallen
- Interner DB-Fehler (passiert manchmal, wenn der Ausweis nicht richtig eingerichtet wurde)
Eine Anwendung, die diese Bibliothek verwendet, muss diese Ausnahmen auf die eine oder andere Weise behandeln. Es ist möglich, dass sie einfach nur "Fehler" sagen oder dem Benutzer mehr nützliche Informationen geben wollen. Was ist die beste Vorgehensweise in dieser Situation? Für jede Möglichkeit eine eigene Ausnahme erstellen? Vorhandene Ausnahmen verwenden? Verwenden Sie Exception und geben Sie den Grund an ( throw new Exception("Badge is deactivated.");
)? Ich denke, es ist eine Art Mischung aus den ersten beiden, wobei bestehende Ausnahmen verwendet werden, wo dies möglich ist, und neue erstellt werden, wo dies erforderlich ist (und Ausnahmen gruppiert werden, wo dies sinnvoll ist).