アプリケーションで大量のカスタム例外が必要な場合でも、カスタム例外を定義してスローすることは良い習慣ですか?
- EntityNotFoundException
- EntityAlreadyExistsException
- EntityNotUniqueException
- EntityNotAddedException
- EntityNotUpdatedException
- EntityNotDeletedException
- QuizOverException
- クイズ期限切れの例外
- TableAlreadyBookedException
- EndDateMustBeGreaterThanStartDateException
これらのサンプルの例外名に名前を付けて、その目的をできるだけよく説明しようとしました。私が何を尋ねようとしているのか、彼らが考えを形成してくれることを願っています。
これらの例外だけで想像力を制限しないでください。アプリケーションの使用中に発生する可能性のあるすべてのものです。CRUD とビジネス例外の両方を検討してください。
例外のスローとキャッチは、パフォーマンスの点で高価なプロセスであることは知っていますが、アプリを開発するためのより洗練された方法を提供しませんか?
EntityNotFoundException
エンティティが null かどうかを確認するには、if ステートメントを記述する代わりに、をスローした方がよいのではないでしょうか。EntityAlreadyExistsException
指定された Id を持つエンティティが既に存在するかどうかを確認するメソッドを呼び出す追加の if ステートメントを記述する代わりに、をスローする方がよいのではないでしょうか?EntityNotAddedException
トランザクションが成功したかどうかを示す bool 型の戻り値をチェックするのではなく、a をスローした方がよいのではないでしょうか。オブジェクトを返したい場合はどうすればよいでしょうか?
答えは「使うべきではなくEntityNotFoundException
、代わりにnullかどうかを確認してください。しかし、使用する必要がありますEntityAlreadyExistsException
」、「聖杯はありません」のようなものになると思います。
これを行うエレガントな方法は何ですか?