Saya mengalami perdebatan antara beberapa teman dan saya. Mereka lebih suka pengecualian umum seperti ClientErrorException
dan ServerErrorException
dengan detail sebagai bidang pengecualian, sedangkan saya lebih suka membuat hal-hal lebih spesifik. Sebagai contoh, saya mungkin memiliki beberapa pengecualian seperti:
BadRequestException
AuthenticationFailureException
ProductNotFoundException
Masing-masing dibangun berdasarkan kode kesalahan yang dikembalikan dari API.
Mengikuti Kelebihan Pengecualian ini tampaknya idiom untuk Jawa. Namun, pendapat teman saya bukanlah hal yang tidak biasa.
Apakah ada cara yang disukai dalam hal keterbacaan kode dan kegunaan API, atau apakah itu benar-benar hanya karena preferensi?
abstract
dan menggeneralisasi kelas pengecualian dengan metode pengambil dan kemudian membuat yang granular memperluas yang umum. Misalnya AuthenticationFaliureException extends ClientErrorException
. Dengan cara ini, setiap pengguna dapat memilih bagaimana mereka ingin berurusan dengan pengecualian. Ini lebih banyak bekerja, tentu saja. Namun, ketika menulis aplikasi (bukan perpustakaan), itu adalah situasi IMHO yang berbeda. Dalam hal ini saya tidak akan membuat pengecualian lebih rinci daripada yang Anda butuhkan, demi kesederhanaan.