ビジネスロジックの観点から(特定のケースで)Dbに存在する必要があるエンティティを取得しようとするメソッドを想像してみてください。
リポジトリ経由で Db から取得しようとして、戻ってきた場合null
、どの例外をスローする必要がありますか? (考えていたObjectNotFoundException
)
ビジネスロジックの観点から(特定のケースで)Dbに存在する必要があるエンティティを取得しようとするメソッドを想像してみてください。
リポジトリ経由で Db から取得しようとして、戻ってきた場合null
、どの例外をスローする必要がありますか? (考えていたObjectNotFoundException
)
例外が必要かどうかについて議論することもできます。空のコレクションまたは null を返さないのはなぜですか?
使用する例外の種類は、アプリケーションで例外を使用する方法によって異なります。
最初に考慮すべきことは、それが機能的なエラー (ユーザーが何かを修正する必要がある) なのか、それとも技術的なエラー (開発者がミスを犯したのか) なのかということです。
考慮すべきもう 1 つのことは、メソッドの呼び出し元にとって何が自然かということです。
この種のシナリオでは例外をスローせず、null
代わりに戻り値を処理します。アプリケーション フローを制御するために例外を使い始めるのは、あまり良い考えではありません。
エンティティが確実に存在する必要がある場合は、ビジネス レイヤーで値を処理しnull
、カスタム ドメインの例外をスローすることができEntityNotFoundException
ます。