İddiaların nasıl ve ne zaman kullanılacağına dair çok sayıda makale (ve StackOverflow'da yayınlanan birkaç benzer soru) okudum ve onları iyi anladım. Ama yine de, Debug.Assert
basit bir istisna atmak yerine beni ne tür bir motivasyon kullanmaya itmesi gerektiğini anlamıyorum . Demek istediğim, .NET'te başarısız bir iddiaya verilen varsayılan yanıt "dünyayı durdurmak" ve kullanıcıya bir mesaj kutusu göstermektir. Bu tür bir davranış değiştirilebilir olsa da, bunu yapmak için oldukça can sıkıcı ve gereksiz buluyorum, bunun yerine uygun bir istisna atabilirim. Bu şekilde, istisnayı atmadan hemen önce hatayı uygulamanın günlüğüne kolayca yazabilirim ve ayrıca uygulamamın donması gerekmez.
Öyleyse neden Debug.Assert
basit bir istisna yerine kullanmalıyım ? Olmaması gereken bir yere bir iddia yerleştirmek sadece her türlü "istenmeyen davranışa" neden olabilir, bu yüzden benim bakış açıma göre, bir istisna atmak yerine bir iddia kullanarak gerçekten hiçbir şey kazanmıyorum. Bana katılıyor musun yoksa burada bir şey mi eksik?
Not: "Teoride" farkın ne olduğunu tam olarak anlıyorum (Hata Ayıklama ve Yayınlama, kullanım kalıpları vb.), Ancak gördüğüm kadarıyla, bir iddia yapmak yerine bir istisna atmam daha iyi olur. Bir üretim sürümünde bir hata keşfedilirse, yine de "iddia" nın başarısız olmasını isterim (sonuçta, "ek yük" gülünç derecede küçüktür), bu yüzden bunun yerine bir istisna atmam daha iyi olur.
Düzenleme: Gördüğüm gibi, bir iddia başarısız olursa, bu, uygulamanın bir tür bozuk, beklenmedik duruma girdiği anlamına gelir. Öyleyse neden idama devam etmek isteyeyim? Uygulamanın bir hata ayıklama veya yayın sürümünde çalışıp çalışmadığı önemli değildir. Aynı şey ikisi için de geçerli