私は、次のような彼らは、一般的な例外を好む数人の友人とI.間の論争に実行したClientErrorException
とServerErrorException
私は物事にもっと具体的に作ることを好むのに対し、例外のフィールドとして詳細に。たとえば、次のような例外がいくつかある場合があります。
BadRequestException
AuthenticationFailureException
ProductNotFoundException
これらはそれぞれ、APIから返されたエラーコードに基づいて構築されています。
例外の利点に従うと、これはJavaにとって慣用的なようです。しかし、私の友人の意見は全く珍しいことではありません。
コードの読みやすさとAPIの使いやすさの点で好ましい方法はありますか、それとも本当に好みに帰着するだけですか?
abstract
getterメソッドを使用して例外クラスを定義および一般化し、詳細なクラスで一般的なクラスを拡張することもできます。例えばAuthenticationFaliureException extends ClientErrorException
。このようにして、すべてのユーザーが例外の処理方法を選択できます。もちろん、もっと機能します。ただし、(ライブラリではなく)アプリケーションを作成する場合、それは私見では別の状況です。その場合は、単純にするために、例外を必要以上に細かくしません。