TL; DR - Hayır , istisnaları sessizce görmezden gelmemelisiniz.
Varsayımlara bakalım.
.NET'teki kararların çoğunun ne yaptığını gerçekten bilen insanlar tarafından verildiğine güvenmeyi öğrendim ve karar verdikleri şeylerin arkasında genellikle çok iyi bir neden var. Ama bu benden kaçıyor.
MS, personel üzerinde bazı gerçekten parlak insanlar var, şüphesiz. Ayrıca ... clueless ve sürekli olarak kötü kararlar veren bir takım yöneticileri ve yöneticileri var. Teknik açıdan anlayışlı bilim insanlarının ürün geliştirmeye yön veren masalına inanmak istediğimiz kadar, gerçeklik çok daha korkunç.
Demek istediğim, içgüdünüz size bir şeylerin yanlış olabileceğini söylüyorsa, bunun yanlış olması için iyi bir şans (ve geçmiş emsal) vardır.
- Bunun teknik bir sorun olduğunu
Bu durumda istisnaların nasıl ele alınacağı teknik bir karar değil, bir insan faktörleri kararıdır. Gevşek bir istisna bir hatadır. Hata biçimlendirilmiş olsa bile hatanın sunumu son kullanıcıya kritik bilgiler sağlar. Yani bir şeyler ters gitti.
Son kullanıcı ve geliştirici arasındaki bu varsayımsal konuşmayı düşünün.
Kullanıcı: Uygulama bozuk.
Dev: Ne kırıldı?
Kullanıcı: Bilmiyorum, düğmeye tıklıyorum ve hiçbir şey olmuyor.
Dev: tarafından Ne demek hiçbir şey olmuyor?
Kullanıcı: Bak, tıklıyorum, bekliyorum ve bekliyorum ve bekliyorum ve hiçbir şey ... Açıkçası kırılmış.
Zavallı, neyse ki varsayımsal Geliştirici'miz artık olaylar zincirinde neyin yanlış gittiğini bulmak zorunda. Neredeydi?
Olay işleyici bildirimi -> Olayı işleme rutini -> İşleyici tarafından tetiklenen yöntem -> eşzamansız çağrının başlangıcı -> 7 OSI ağının katmanları -> fiziksel iletim -> 7 OSI ağının katmanlarını yedekle -> alıcı hizmet -> servis tarafından çağrılan yöntem -> ... -> servis tarafından gönderilen cevap dönüş - - .... -> asenkron makbuz -> asenkron cevap işlenmesi -> ...
Ve orada birkaç potansiyel hata yolu üzerinde parladığımı lütfen unutmayın.
Temel varsayımlardan bazılarına değindikten sonra, istisnaların sessizce bastırılmasının neden kötü bir fikir olduğu daha açık hale geliyor. Bir istisna ve ilişkili hata mesajı, kullanıcıların bir şeylerin yanlış gittiğinin önemli bir göstergesidir. Mesaj son kullanıcı için anlamsız olsa bile, gömülü bilgiler neyin yanlış gittiğini anlamada Geliştirici için yararlı olabilir. Eğer şanslılarsa, mesaj bile çözüme yönlendirir.
Buradaki sorunun bir parçası, yanlış işlenmiş bir istisnanın uygulamanızı kilitleyeceğini düşünüyorum. İstisnaları bastırarak uygulama çökmez. Bununla birlikte, zaman uyumsuzluğun, veri alınırken uygulamanın çalışmaya devam etmesine izin vermesi olduğu için bunun bir geçerliliği vardır. Sonuçlarda beklerken çalışmaya devam edebiliyorsanız, o zaman geri almadaki bir başarısızlığın uygulamayı da çökertmemesi gerektiğini söylemek mantıklı bir uzantı değildir - zaman uyumsuz çağrı örtük olarak uygulamayı sonlandıracak kadar önemli olarak bildirilmez.
Bu bir çözüm, ama yanlış sorunu çözüyor. Uygulamanın çalışmaya devam edebilmesi için özel durum işleme için bir sarıcı sağlamak çok fazla çaba sarf etmez. Kural dışı durum yakalanır, ekrana hata iletisi atılır veya günlüğe kaydedilir ve uygulamanın çalışmaya devam etmesine izin verilir. İstisnanın bastırılması, hataları görmezden gelmenin A-OK olacağını ve testinizin istisnaların hiçbir zaman alana kaçmamasını sağlayacaktır.
Bu yüzden son değerlendirmem, insanların düşüncelerini bu yaklaşıma kaydırmaya hazır olmadıklarında, eşzamansız bir modele iterek yaratılan bir sorunu çözmek için yarı pişmiş bir girişim olduğu yönündedir.