Ich bin in eine Debatte zwischen ein paar Freunden und mir geraten. Sie bevorzugen allgemeine Ausnahmen wie ClientErrorException
und ServerErrorException
mit Details als Ausnahmefelder, während ich es vorziehe, die Dinge spezifischer zu gestalten. Zum Beispiel könnte ich eine Handvoll Ausnahmen haben wie:
BadRequestException
AuthenticationFailureException
ProductNotFoundException
Jedes dieser Elemente basiert auf dem von der API zurückgegebenen Fehlercode.
Nach den Vorteilen von Ausnahmen erscheint dies Java idiomatisch. Die Meinung meiner Freunde ist jedoch nicht gerade ungewöhnlich.
Gibt es einen bevorzugten Weg in Bezug auf Code-Lesbarkeit und API-Benutzerfreundlichkeit oder kommt es wirklich nur auf die Präferenz an?
abstract
mit den Getter-Methoden Ausnahmeklassen definieren und verallgemeinern und dann die granularen die allgemeinen erweitern lassen. ZB AuthenticationFaliureException extends ClientErrorException
. Auf diese Weise kann jeder Benutzer auswählen, wie er mit den Ausnahmen umgehen möchte. Es funktioniert natürlich mehr. Beim Schreiben einer Anwendung (anstelle einer Bibliothek) ist dies meiner Meinung nach eine andere Situation. In diesem Fall würde ich die Ausnahmen der Einfachheit halber nicht detaillierter gestalten, als Sie sie benötigen.