Birkaç arkadaş ve ben arasında bir tartışmaya girdim. İstisna alanları gibi ayrıntılarla ClientErrorException
ve ServerErrorException
ayrıntılarla genel istisnaları tercih ederken, işleri daha spesifik hale getirmeyi tercih ediyorum. Örneğin, aşağıdaki gibi bir avuç istisna olabilir:
BadRequestException
AuthenticationFailureException
ProductNotFoundException
Bunların her biri API'dan döndürülen hata koduna dayanarak oluşturulmuştur.
İstisnaların Avantajları sonrasında bu Java için deyimsel görünmektedir. Ancak, arkadaşlarımın görüşü tam olarak nadir değildir.
Kod okunabilirliği ve API kullanılabilirliği açısından tercih edilen bir yol var mı, yoksa gerçekten tercih mi?
abstract
alıcı yöntemleri ile istisna sınıflarını tanımlayabilir ve genelleştirebilir ve sonra ayrıntılı olanları genel olanları genişletebilirsiniz. Örn AuthenticationFaliureException extends ClientErrorException
. Bu şekilde, her kullanıcı istisnalarla nasıl başa çıkmak istediklerini seçebilir. Açıkçası, daha fazla işe yarıyor. Ancak, bir uygulama yazarken (kütüphane yerine), bu farklı bir durum IMHO'dur. Bu durumda, basitlik uğruna, istisnaları ihtiyacınız olandan daha ayrıntılı yapmam.