ユーザーが動的コンテンツをリポジトリに追加できるようにするサービスがあります。したがって、基本的には、ユーザーが追加するドキュメントのタイプに応じて、その特定のオブジェクトのプロパティのリストを含む汎用 Document クラスがあります (たとえば、請求書ドキュメントには請求書番号プロパティがあり、wiki ドキュメントには作成者プロパティがあるなど)。の上)。
サービスはさまざまなレイヤーで構成されており、ある時点で、追加するドキュメントがルール コンフィギュアラーに準拠しているかどうかを確認し、必要なすべてのプロパティが提供されているかどうか、それらがすべて正しいタイプであるかどうかなどを評価する必要があるクラスがあります。これらの検証のいずれかが失敗した場合、検証ステータスを含むカスタム例外をスローしたいと考えています。
問題は、ValidationException をチェックするか、チェックを外すかです。どのような種類の例外を使用するかを決定する方法について、多くのベスト プラクティスを読みました。私はRuntimeExceptionの使用を考えていましたが、この場合、例外はコーディングのエラーやそのようなものではなく、ユーザー入力によってのみ発生します...一方、チェックされた例外を使用すると、「スロー」構文が伝播することになりますアプリケーションの上記のすべてのレイヤーと、おそらくサービスのメソッドの 90% で、コードの読みやすさと操作性が大幅に低下します。