Kodun başka bir bölümünün doğru kodlanmamış olması durumunda işe yaramaz istisna işlemeyi uygulamak iyi bir uygulama mı?
Temel örnek
Basit bir tane, bu yüzden herkesi kaybetmem :).
Diyelim ki bir kişinin bilgilerini (ad, adres vb.) Görüntüleyecek bir uygulama yazıyorum, veriler bir veritabanından çıkartılıyor. Diyelim ki UI bölümünü kodlayan benim ve başka biri DB sorgu kodunu yazıyor.
Şimdi, uygulamanızın özelliklerinin, kişinin bilgileri eksikse (diyelim ki, ad veritabanında eksikse), sorguyu kodlayan kişinin eksik alan için "NA" döndürerek bunu ele alması gerektiğini söylediğini düşünün.
Sorgu kötü kodlanmışsa ve bu durumu ele almıyorsa ne olur? Sorguyu yazan kişi size eksik bir sonuç verirse ve bilgileri görüntülemeye çalıştığınızda kodunuz boş şeyler görüntülemeye hazır olmadığından her şey çöker?
Bu örnek çok basit. Çoğunuzun "bu sizin probleminiz değil, bu kazadan siz sorumlu değilsiniz" diyeceğine inanıyorum. Ancak, hala kodun çökmekte olan kısmı.
Başka bir örnek
Diyelim ki sorguyu yazan kişi benim. Spesifikasyonlar yukarıdakiyle aynı şeyi söylemez, ancak "insert" sorgusunu yazan adamın, eksik bilgi eklemekten kaçınmak için veritabanına bir kişi eklerken tüm alanların eksiksiz olduğundan emin olması gerekir. Kullanıcı arabirimine tam bilgi verdiğimden emin olmak için "select" sorgumu korumam gerekir mi?
Sorular
Spesifikasyonlar açıkça "bu adam bu durumu idare etmekten sorumlu kişi" demezse ne olur? Üçüncü bir kişi başka bir sorgu uygularsa (birincisine benzer, ancak başka bir DB'de) ve görüntülemek için UI kodunuzu kullanır, ancak kodunda bu durumu ele almazsa ne olur?
Kötü davayı ele almam gereken kişi olmasam da, olası bir çökmeyi önlemek için gerekenleri yapmalı mıyım?
"Çarpışmadan o sorumlu olan biri" gibi bir cevap aramıyorum, burada bir çatışmayı çözmediğim için bilmek istiyorum, kodumu durumlara karşı korumalıyım, bu benim sorumluluğum değil idare etmek? Burada, basit bir "boş bir şey yap" yeterli olacaktır.
Genel olarak, bu soru gereksiz istisna yönetimiyle ilgilenir. Bunu soruyorum çünkü bir projede tek başıma çalıştığımda, ardışık işlevlerde benzer bir istisna işlemeyi 2-3 kez kodlayabilirim, "ne olursa olsun" yanlış bir şey yaptım ve kötü bir durumun ortaya çıkmasına izin verdim.