Bu problemi bir süredir tartışıyorum ve sürekli olarak uyarılar ve çelişkiler bulurken kendimi sürekli buluyorum, bu yüzden birinin aşağıdakilere bir sonuç verebileceğini umuyorum:
Hata kodları üzerindeki istisnaları tercih etme
Bildiğim kadarıyla, dört yıldır sektörde çalışmaktan, kitap okumak, blog okumak, vb. Hataları düzeltmek için en iyi uygulama hata kodlarını döndürmek yerine istisnalar atmaktır (mutlaka bir hata kodu değil, fakat hatayı temsil eden tür).
Ama - Bana göre bu çelişkili görünüyor ...
Arayüzlere kodlama, uygulamalara değil
Birleşmeyi azaltmak için arayüzleri ve soyutlamaları kodlarız Bir arabirimin belirli bir türünü ve uygulamasını bilmiyoruz veya bilmek istiyoruz. Öyleyse, hangi istisnaları yakalamak istediğimizi nasıl bilebiliriz? Uygulama 10 farklı istisna atabilir veya hiçbirini atmayabilir. Kesinlikle bir istisna yakaladığımızda, uygulama hakkında varsayımlarda bulunuyoruz?
Tabi - arayüzde ...
İstisna özellikleri
Bazı diller, geliştiricilerin belirli yöntemlerin belirli istisnalar attığını belirtmelerine izin verir (örneğin, Java throws
anahtar kelimeyi kullanır .) Arama kodunun bakış açısına göre bu iyi görünüyor - hangi istisnaları yakalamamız gerekebileceğini açıkça biliyoruz.
Ancak - bu bir ...
Sızdıran soyutlama
Bir arabirim neden hangi istisnaların atılabileceğini belirtmelidir? Uygulamanın bir istisna atması gerekmiyorsa veya başka istisnalar atması gerekiyorsa? Bir uygulama düzeyinde, bir uygulamanın hangi istisnaları atmak isteyebileceğini bilmek mümkün değildir.
Yani...
Sonuçlandırmak
Yazılımın en iyi uygulamalarıyla çelişiyor gibi göründüğünde (gözlerimin içinde) neden istisnalar tercih ediliyor? Ve eğer hata kodları çok kötüyse (ve hata kodlarından başka birine satılmam gerekmiyor), başka bir alternatif var mı? Yukarıda ana hatları verilen en iyi uygulamaların gerekliliklerini karşılayan, ancak hata kodlarının dönüş değerini kontrol eden kod çağırmaya dayanmayan, hata yönetimi için mevcut durum (veya yakın zamanda) nedir?