Ich denke, ein wichtiger Faktor ist, wer Ihre Service-Kunden sind.
Wenn Ihre Serviceebene nur eine architektonische Grenze zwischen den Ebenen in Ihrem eigenen Projekt ist und sich der Service-Client im selben Vertrauensbereich befindet, können Sie die Dinge lockern und ungeprüfte Ausnahmen auf die Controller-Ebene oder den Service-Client übertragen.
Für öffentlich zugängliche Codes; Service, der von einem Dritten oder Kunden in Anspruch genommen wird. Ich halte es für sauberer, ungeprüfte Ausnahmen mit einer serviceorientierten Ausnahme zu versehen, hauptsächlich aus Sicherheitsgründen, zweitens wegen lockerer Kopplung und sauberer Abstraktion.
Eine Datenschichtausnahme sollte niemals direkt zu einem Endbenutzer einer Webanwendung führen . Es enthält möglicherweise interne Informationen zu Ihrem Schema, Ihren Abfragen, Zeilennummern, Variablen- oder Funktionsnamen usw. Ausnahmen für Endbenutzer können in einer sicheren Einstellung bereinigt werden.
Ein externer Service-Client kümmert sich nicht um Ihre Implementierungsdetails und kann ohnehin keine ungeprüften Ausnahmen behandeln, da es sich um Fehler oder Umgebungsprobleme handelt. In sicheren Anwendungen sind Datenbankfehler einfach nicht sicher genug, um sich zu verbreiten. Dies OracleException - ORA-01234 - ...
könnte die dritte Tabelle sein, die eingefügt wurde. Dem Client sollte erlaubt sein, alle überprüften / erwarteten Ausnahmen, die er behandeln kann, zu behandeln und alles andere als potenziellen Fehlerbericht zu behandeln. Ihr Servicevertrag sollte eine atomare, konsistente, transaktionale Abstraktion sein. Wenn die Ausnahme nicht behoben werden kann, bleibt nur ein Fehlerbericht. Sie haben bereits die Möglichkeit, die Ausnahme zu protokollieren. Warum sollten Sie Ihren Endbenutzer also mit den Details belasten? Ihre App kann überwacht werden, sodass Sie bereits über die nicht aktivierten Ausnahmen informiert sind, bevor die Benutzer sie melden.
Es ist nie in Ordnung, Ausnahmen zu essen , und ich bin auch kein Fan von geprüften Ausnahmen, aber ich bevorzuge einen Plan, der der Art des Gesamtprodukts entspricht.