.NET'te özel durumları işleme ve atma
Uygulamaların yürütme sırasında oluşan hataları tutarlı bir şekilde işlemesi gerekir. .NET, uygulamalara hataları tekdüz bir şekilde bildirmek için bir model sağlar: .NET işlemleri özel durumlar atarak başarısızlığı 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, kodunda veya çağıran kodda (paylaşılan kitaplık gibi) bir hata, kullanılamayan işletim sistemi kaynakları, çalışma zamanının karşılaştığı beklenmeyen koşullar (doğrulanamayan kod gibi) gibi durumlar nedeniyle ortaya çıkabilir. Uygulamanız bu koşulların bazılarından kurtarılabilir, ancak diğer koşullardan kurtarılamaz. Çoğu uygulama özel durumundan kurtarabilirsiniz, ancak çoğu çalışma zamanı özel durumu kurtarılamaz.
.NET'te özel durum, sınıfından devralan bir System.Exception nesnedir. Bir sorunun meydana geldiği bir kod alanında özel durum oluştu. Uygulama tarafından işilene veya program sonlandırılana kadar özel durum yığına geçirildi.
Özel durumlar ve geleneksel hata işleme yöntemleri
Geleneksel olarak, bir dilin hata işleme modeli, dilin hataları algılama ve onlar için işleyicileri bulmanın benzersiz yolunu veya işletim sistemi tarafından sağlanan hata işleme mekanizmasını kullandı. .NET'in özel durum işlemeyi uygulama yolu aşağıdaki avantajları sağlar:
Özel durum atma ve işleme, .NET programlama dillerinde aynı şekilde çalışır.
Özel durumları işleme için belirli bir dil söz dizimi gerektirmez, ancak her dilin kendi söz dizimini tanımlamasını sağlar.
İşlem ve hatta makine sınırları arasında özel durumlar sızıyor olabilir.
Özel durum işleme kodu, program güvenilirliğini artırmak için uygulamaya eklenebilir.
Özel durumlar, dönüş kodları gibi diğer hata bildirimi yöntemlerine göre avantajlar sunar. Hatalar gözlerden kaçamaz çünkü bir özel durum oluşturursanız ve bunu işlemezsanız çalışma zamanı, uygulamanızı sonlandırılır. Geçersiz değerler, bir hata dönüş kodunu denetlemeyi başaramayan kodun sonucu olarak sistemde yayılmaya devam eder.
Sık karşılaşılan özel durumlar
Aşağıdaki tabloda bazı yaygın özel durumlar listele birlikte bunlara neden olan örnekler verilmiştir.
| Ö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 | Yalnızca bir dizi yanlış dizine alındı olduğunda çalışma zamanı tarafından oluşturma. | Bir diziyi geçerli aralığının dışında dizinleme: arr[arr.Length+1] |
| NullReferenceException | Yalnızca bir null nesneye başvurulsa çalışma zamanı tarafından oluşturur. | object o = null; o.ToString(); |
| InvalidOperationException | Geçersiz durumda olduğunda yöntemler tarafından thrown. | Temel Enumerator.MoveNext() alınan koleksiyondan bir öğe kaldırılarak çağrıldı. |
| 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 | Bir bağımsız değişkenin null olmasına izin vermemesi için yöntemler tarafından thrown. | String s = null; "Calculate".IndexOf(s); |
| ArgumentOutOfRangeException | Bağımsız değişkenlerin verili bir aralıkta olduğunu doğrular. | String s = "string"; s.Substring(s.Length+1); |
Ayrıca bkz.
- Özel Durum Sınıfı ve Özellikler
- 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
- Çalışma Zamanında Her Geliştirmenin Özel Durumlar Hakkında Biliyor Olması Gerekenler