.Gerekli Yapılandırma Ayarı Eksik Olduğunda Atmak için?NET:
Burada standart bir senaryo:
if(string.IsNullOrEmpty(Configuration.AppSettings["foobar"]))
throw new SomeStandardException("Application not configured correctly, bozo.");
Sorun, tam olarak emin deÄŸilimhangiistisna SomeStandardException
olmalıdır.
3.5 Çerçevesinde karıştırdım ve iki aday buldum: ConfigurationException
ConfigurationErrorsException
.
Sistem.Yapılandırma.ConfigurationException
Ne zaman durum özel durum yapılandırma sistem hatası var oluştu.
Açıklamalar
BuConfigurationException
dahildir Uygulama Eğer atılan girişimleri okumak veya veri yazmak yapılandırma dosyası ama. başarısız. Bazı olası nedenler bu hatalı biçimlendirilmiş XML içerebilir için yapılandırma dosyası, dosya izin sorunları ve yapılandırma olmayan değerler ile özellikleri geçerli.Not:
ConfigurationException
nesne geriye dönük uyumluluk için korunur.ConfigurationErrorsException
nesne yerine geçer yapılandırma sistemi.
Bu durum aslında ihtiyacım olan şey mükemmel görünüyor, ama işaretli eskimiş, yani atthay konusunda beni geçti.
Bu iyice kafa karıştırıcı ConfigurationErrorsException
için bize getiriyor:
Sistem.Yapılandırma.ConfigurationErrorsException
Geçerli bir değer değil EnableSessionState değerleri.
Gördüğünüz gibi, belgeleri bir işe yaramıyor. (Hem yerel ve çevrimiçi Yardım bu.) Sınıfının bir sınav kendisi istediğim için ciddi abartılı olduğunu gösterir.
Özetle, uygulama yapılandırma ayarı eksik veya geçersiz bir değer içeriyorsa, atılması gereken standart bir istisna istiyorum. Çerçeve böyle bir istisna uygulamaları kullanmak için içine pişmiş uğradığını şaşırırsın. (Görünüşe göre yaptım, ama eski damgasını vurdu, ve bir şey tarafından değiştirildiçokdaha geniş kapsamda.)
Ne çözüm varsa, bunu sizler için kullanıyor, ve yalamak zorunda kalacağım ve bunun için kendi özel rulo?
Gündemin Düzenleyin
Bazı veya varsayılan bir değer sağlamak ve devam olup olmadığını sordu. Bazı durumlarda, evet, ve bu durumda, özel durum olmazdı. Ancak, bazı ayarları için, bu kural geçerli olmayacak. Örneğin: veritabanı sunucusu adları ve kimlik bilgileri, kimlik doğrulama sunucuları ve yüklü üçüncü parti uygulamalar için yollar.
Ayrıca belirtmekte fayda bu uygulama ben öncelikle çalışan bir konsol uygulaması çalışan Toplu Modu, ve istiyorum onu atmak için bir istisna olduğunu tarafından yakalanan ana yöntem ve oturum eğer uygun bir şey değil uygun bir şekilde yapılandırılmış. (Bu bana miras kaldı ve şu anda sadece eski kodvarsayarherşey bok gibi.)
CEVAP
Şahsen, nesne durumu ile ilgili bir sorun var - yapılandırma sistemi gibi InvalidOperationException, kullanmak istiyorum. Tüm bunlardan sonra, bu ayarları kod tarafından belirlenen izin vermemelisin ve de config değil mi? Önemli kısım burada app sıra vardı hayır o değil.bilgi gerekli bir parça bulunmayan config, ama.
Bana, ConfigurationException (yedek, ConfigurationErrorsException - yanıltıcı web docs rağmen) tasarruf hatalarını, okuma, vb. Yapılandırma.
'ek yapılandırma' başvuru iç...
Bir veya daha fazla türde bulunamıyor ...
Çözmek için nasıl "Eklenti yürütm...
Nasıl ilerleme iletişim ve arka plan i...
Nasıl saklamak için Node.js dağıtım ay...