Ben doğru yolda olduğunu düşünüyorum. Potansiyel olarak atılabilir tüm istisnaları atmak, yakalamak veya belgelemek çok mantıklı değildir. Ürün zorluğunun daha yüksek derecede istisnai istihdam ve dokümantasyon gerektirdiği zamanlar vardır (örneğin, bir sistemin güvenlik açısından kritik bazı yönleri).
Özellikle savunma görevlileri (örn. Herkese açık veya korunan bir üyeye benzeyen herhangi bir şey) üzerindeki ön koşulları (ve son koşulları) tanımlamak için sözleşme kavramlarını kullanarak daha savunmacı olma stratejisi genellikle daha etkili ve daha esnek olacaktır. Bu sadece uygulama için değil, belgeler için de geçerlidir. Geliştiriciler neyin beklendiğini biliyorlarsa, kurallara uyma olasılıkları daha yüksektir ve karıştırdığınız veya yazdığınız kodu kötüye kullanma olasılığı daha düşüktür.
Belgelenmesi gereken yaygın şeylerden bazıları null parametreleridir. Çoğunlukla kullanımlarının, sonucu normalde beklenmeyen bir şeye yönlendiren, ancak bazen esneklik için çeşitli nedenlerle izin verilen ve kullanılan bir sonuç vardır. Boş veya diğer özel, rasyonel olmayan değerlere (negatif zaman veya negatif miktarlar gibi) izin veren parametrelere sahip bir üyenin tüketicisi olarak, bunların tanımlanmasını ve açıklanmasını bekliyorum.
Null olmayan parametreler için, genel veya korunan bir üyenin tüketicisi olarak null değerine izin verilmediğini bilmek istiyorum. Verilen bağlamdaki geçerli değer aralığının ne olduğunu bilmek istiyorum. Normal aralığın dışında, ancak farklı bir çağrı bağlamında geçerli olan değerleri kullanmanın sonuçlarını bilmek istiyorum (örneğin, türün değeri genellikle herhangi bir işlem için geçerlidir, ancak burada değil - boolean bir parametre gibi geçerli bir değer olarak false değerini beklemez.
Platform veya başka türlü iyi bilinen arayüzlere gelince, bunu belgelemek için aşırı uçlara gitmeniz gerektiğini düşünmüyorum. Bununla birlikte, bir geliştirici olarak, uygulamayı hangi platform rehberliğinden farklı olarak değiştirme fırsatına sahip olduğunuzdan, bu rehberliğin nasıl değerli olabileceğine dikkat edin.
IDisposable'a özgü, genellikle bu arayüzün uygulamaları, açık elden çıkarma işlemi yerine tercih edilen alternatif bir yöntem sunar. Bu durumlarda, tercih edilen yöntemi vurgulayın ve açık bertarafın tercih edilmediğine dikkat edin.