Buradaki yanıtların çoğunu inceledikten sonra, birkaç fikir eklemek istiyorum.
XML Belgeleme Yorumlarına güvenmek ve başkalarının da güvenmesini beklemek kötü bir seçimdir. Karşılaştığım çoğu C # kodu, yöntemleri tamamen ve tutarlı bir şekilde XML Belgeleme Yorumları ile belgelemiyor. Ve daha büyük bir sorun var ki, C # 'da kontrol edilen istisnalar olmadan, API kullanıcınızın hepsini tek tek nasıl ele alacağını bilmek amacıyla yönteminizin attığı tüm istisnaları nasıl belgeleyebilirsiniz? Unutmayın, yalnızca uygulamanızda throw anahtar kelimesi ile kendinizi attığınız kişileri bilirsiniz. Yöntem uygulamanızın içinde kullandığınız API'ler, belgelenmemiş olabileceğinden ve bunları uygulamanızda kullanmadığınız için bilmediğiniz istisnaları da atabilir, bu nedenle bunlar, sizi arayan kişinin karşısında patlayacaktır. yöntem. Diğer bir deyişle,
Andreas, C # tasarım ekibinin neden kontrol edilen istisnalara karşı karar verdiğine dair yanıtlarda Anders Hejlsberg ile bir röportaj yaptı. Orijinal soruya verilecek nihai yanıt, bu röportajda gizli:
Programcılar, her yerde try nihayet yazarak kodlarını korurlar, böylece bir istisna olursa doğru şekilde geri dönerler, ancak istisnaları ele almakla aslında ilgilenmezler.
Diğer bir deyişle, her zaman hepsini her yerde yakalayacağınız için, hiç kimse belirli bir API için ne tür bir istisnanın beklenebileceğiyle ilgilenmemelidir. Ve belirli istisnaları gerçekten önemsemek istiyorsanız, bunların nasıl ele alınacağı size bağlıdır ve Java atar anahtar kelimesi gibi bir şeyle bir yöntem imzası tanımlayan biri değil, bir API kullanıcısında belirli istisna işlemlerini zorlar.
-
Şahsen ben burada parçalandım. İstisnaları kontrol etmenin sorunu yeni, farklı sorunlar eklemeden çözmediği konusunda Anders'e katılıyorum. Tıpkı XML dokümantasyon yorumlarında olduğu gibi, her şeyin try nihayet bloklarına sarılı olduğu C # kodunu nadiren görüyorum. Bana öyle geliyor ki bu gerçekten tek seçeneğiniz ve iyi bir uygulama gibi görünen bir şey.