.NET'te özel durumları işleme ve oluşturma
Uygulamalar, yürütme sırasında oluşan hataları tutarlı bir şekilde işleyebilmelidir. .NET, uygulamaları hatalarla ilgili tekdüzen bir şekilde bilgilendirmek için bir model sağlar: .NET işlemleri özel durumlar oluşturarak hatayı gösterir.
Özel durumlar
Özel durum, yürütülen bir program tarafından karşılaşılan herhangi bir hata koşulu veya beklenmeyen davranıştır. Özel durumlar, kodunuzdaki veya çağırdığınız koddaki bir hata (paylaşılan kitaplık gibi), kullanılamayan işletim sistemi kaynakları, çalışma zamanının karşılaştığı beklenmeyen koşullar (doğrulanamıyor kod gibi) vb. nedeniyle oluşabilir. Uygulamanız bu koşulların bazılarından kurtarılabilir, ancak diğerlerinden kurtarılamayabilir. Çoğu uygulama özel durumundan kurtarabilirsiniz ancak çoğu çalışma zamanı özel durumundan kurtaramazsınız.
.NET'te özel durum, sınıfından System.Exception devralan bir nesnedir. Bir sorunun oluştuğu bir kod alanından özel durum oluşturulur. Özel durum, uygulama tarafından işlenene veya program sonlandırana kadar yığına geçirilir.
Özel durumlar ile geleneksel hata işleme yöntemleri karşılaştırması
Geleneksel olarak, bir dilin hata işleme modeli, dilin hataları algılama ve bunlar için işleyicileri bulmanın benzersiz yöntemine veya işletim sistemi tarafından sağlanan hata işleme mekanizmasına dayanır. .NET'in özel durum işlemeyi uygulama yöntemi aşağıdaki avantajları sağlar:
Özel durum oluşturma ve işleme .NET programlama dilleri için aynı şekilde çalışır.
Özel durumları işlemek için belirli bir dil söz dizimi gerektirmez, ancak her dilin kendi söz dizimini tanımlamasına izin verir.
İşlem ve hatta makine sınırları arasında özel durumlar oluşturulabilir.
Program güvenilirliğini artırmak için bir uygulamaya özel durum işleme kodu eklenebilir.
Özel durumlar, dönüş kodları gibi diğer hata bildirimi yöntemlerine göre avantajlar sunar. Bir özel durum oluşursa ve bunu işlemezseniz çalışma zamanı uygulamanızı sonlandırdığından hatalar fark edilmez. Geçersiz değerler, hata dönüş kodu denetiminde başarısız olan kodun bir sonucu olarak sistemde yayılmaya devam etmez.
Sık karşılaşılan özel durumlar
Aşağıdaki tabloda, bunlara neyin neden olabileceğinin örnekleriyle birlikte bazı yaygın özel durumlar listelemektedir.
Özel durum türü | Açıklama | Örnek |
---|---|---|
Exception | Tüm özel durumlar için temel sınıf. | Hiçbiri (bu özel durumun türetilmiş bir sınıfını kullanın). |
IndexOutOfRangeException | Çalışma zamanı tarafından yalnızca bir dizi düzgün dizine alınmadığında oluşturulur. | Bir dizinin geçerli aralığının dışında dizin oluşturma:arr[arr.Length+1] |
NullReferenceException | Çalışma zamanı tarafından yalnızca null bir nesneye başvurulduğunda oluşturulur. | object o = null; o.ToString(); |
InvalidOperationException | Geçersiz bir durumdayken yöntemler tarafından oluşturulur. | Temel alınan koleksiyondan bir öğeyi kaldırdıktan sonra çağırma Enumerator.MoveNext() . |
ArgumentException | Tüm bağımsız değişken özel durumları için temel sınıf. | Hiçbiri (bu özel durumun türetilmiş bir sınıfını kullanın). |
ArgumentNullException | Bağımsız değişkenin null olmasını engelleyen yöntemler tarafından oluşturulur. | String s = null; "Calculate".IndexOf(s); |
ArgumentOutOfRangeException | Bağımsız değişkenlerin belirli bir aralıkta olduğunu doğrulayan yöntemler tarafından oluşturulur. | String s = "string"; s.Substring(s.Length+1); |
Ayrıca bkz.
- Özel Durum Sınıfı ve Özellikleri
- Nasıl yapılır: Özel Durumları Yakalamak için Try-Catch Bloğu Kullanma
- Nasıl yapılır: Bir Catch Bloğunda Belirli Özel Durumları Kullanma
- Nasıl yapılır: Açıkça Özel Durumlar Oluşturma
- Nasıl yapılır: Kullanıcı Tanımlı Özel Durumlar Oluşturma
- Kullanıcı Tarafından Filtrelenmiş Özel Durum İşleyicilerini Kullanma
- Nasıl yapılır: Finally Bloklarını Kullanma
- COM Birlikte Çalışması Özel Durumlarını İşleme
- Özel Durumlar için En İyi Yöntemler
- Her Geliştirmenin Çalışma ZamanındaKi Özel Durumlar Hakkında Bilmesi Gerekenler