2017-09-21 24 views
0

nullを返すか、代わりに例外をスローするのがよいか悪いのかを知りたいと思います。エンティティがリポジトリに存在しない場合、nullを返すのが望ましいですか?

本当に例外的なことが起きたときに例外がスローされるべきだと考えていますが、nullを返すのは醜いです。とにかく、上記のレイヤーはnullをチェックして例外をスローする必要があります私のドメインでは許可されていません。

正しく進めるにはどうすればよいですか?

+2

でそれを調べます。 「[NullObject Pattern](https://en.wikipedia.org/wiki/Null_Object_pattern)」を参照してください。 – Fildor

+0

もっと一般的な質問でもあるhttps://stackoverflow.com/questions/175532/should-a-retrieval-method-return-null-or-throw-an-exception-when-it-cant-prodも参照してください。 opionベースで閉じられました。 – HimBromBeere

+0

メソッドの名前は何ですか? – mjwills

答えて

2

私の意見では、例外をスローするよりもNullが優れていますが、これは例外的なケースであり、もちろんドメインに依存します。

戻ってきれいなことは、Null objectです。つまり、リポジトリで参照している項目と同じインターフェースを実装しているオブジェクトですが、null以外の機能を持つように動作するようになっています。 Null object pattern上に読む

、または黒または白だけでなくはありAgile Principles, Patterns, and Practices in C#

+1

_ "例外をスローするよりもヌルが望ましい。リポジトリで探しているものを見つけられないという点で例外的なことは何もない" _ - OPと同じプロジェクトで作業していますか?そうでなければ、あなたはそれを知ることはできません。 _存在しないIDを取得することが許可されていないため、_ _ * *存在しないIDを検索すると、ビジネスロジックのコーディングエラーまたはエラーを示唆した場合、例外をスローする完全に正当化されるべきである(だれが、どこでそれを議論することができるか)。 – Fildor

+2

良い点。もちろん例外ではないケースがあります。私はその声明を軽くするでしょう。 – Fontanka16

関連する問題