Aracılığıyla paylaş


.NET'te özel durumları işleme ve fırlatma.

Uygulamaların yürütme sırasında oluşan hataları tutarlı bir şekilde işleyebilmesi gerekir. .NET, uygulamalara hataları tekdüzen bir şekilde bildirmek için bir model sağlar: .NET işlemleri özel durumlar oluşturarak başarısız olduğunu 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. İstisnalar, kodunuzdaki veya çağırdığınız koddaki bir hata (paylaşılan bir kütüphane gibi), kullanılamayan işletim sistemi kaynakları, çalışma zamanının karşılaştığı beklenmeyen koşullar (doğrulanamayan kod gibi) ve benzeri sebepler nedeniyle meydana gelebilir. Uygulamanız bu koşulların bazılarından kurtarılabilir, ancak diğerlerinden kurtarılamayabilir. Çoğu uygulama özel durumunun üstesinden gelebilirsiniz ancak çoğu çalışma zamanı özel durumunun üstesinden gelemezsiniz.

.NET'te, bir istisna, System.Exception sınıfından 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 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şturulursa ve siz bunu işlemezseniz çalışma zamanı uygulamanızı sonlandırdığından hatalar gözlerden çıkarılmaz. Geçersiz değerler, hata dönüş kodunu kontrol edemeyen bir kodun sonucu olarak sistemde yayılmaya devam etmez.

Yaygın ö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 uygun olmayan şekilde dizine alındığında fırlatılır. 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 fırlatılır. object o = null;
o.ToString();
InvalidOperationException Geçersiz bir durumdayken yöntemler tarafından fırlatılır. Enumerator.MoveNext()'yi, altındaki koleksiyondan bir öğe kaldırıldıktan sonra çağırma.
ArgumentException Tüm argüman istisnaları için temel sınıf. Hiçbiri (bu özel durumun türetilmiş bir sınıfını kullanın).
ArgumentNullException Null bir bağımsız değişkene izin vermeyen yöntemler tarafından atılır. 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 bakınız