Bazı veri erişim kodu yazıyorum ve veritabanında potansiyel olarak "geçersiz" veri durumlarını kontrol etmek istiyorum. Örneğin, veri tabanından bir widget döndürüyorum ve sadece bir tane bekliyorum. İki tane alırsam bir istisna atmak istiyorum. Başvurusal bütünlük bunun oluşmasını engellese de, şemayı hiç değiştirmeden DBA'lara bağlı kalmak istemiyorum (bunu açıklığa kavuşturmak için, eğer birincil anahtar kısıtlaması kaldırılırsa ve bir dupe olursa, hızlı ve açık bir şekilde kırmak istiyorum).Geçersiz veritabanı durumu için hangi .NET istisnası atılacak?
System.IO.InvalidDataException kullanmak istiyorum, ancak bir dosya akışı ile uğraşmadığı için yanıltıcı olabilir. Genel bir uygulamaexception ile gittim. Daha iyi bir fikri olan var mı?
herhangi uygun standart istisna bulamayan Özel bir istisna yazabilirsiniz
Evet, verileri bir dosyadan yüklemek için kullanırdım - Mantığınıza katılıyorum. Devam edeceğim ve InvalidDataException kullanacağım. – jslatts
Bu muhtemelen muhtemelen en uygun kural dışı durum sınıfıdır. Sadece System.Data' ile ilgili şeyler yaptığınızda 'System.IO' ad alanından bir istisna atmak için - @Jon Skeet'in veri akışı argümanına rağmen garip IMHO hissediyor. (Tabi ki, ad alanlarının somut anlamı fazla tahmin edilmemeli, ama yine de, atılacak doğru bir şey olmadığına dair ince bir mesaj iletiyor.) Bu durumda, özel bir istisna sınıfının sağlanacağını düşünüyorum. haklı olmak – stakx
Şahsen destek istemlerinin doğru bir şekilde yönlendirilmemesinin nedeni için çerçeve dışı koddan yerel çerçeve istisnaları atayım. Belki de ApplicationInvalidDataException adında bir alt sınıf uygun olur mu? –