SORU
20 EKİM 2008, PAZARTESİ


-İnşa edilmiş .NET istisnalar benim uygulamadan atabilir miyim?

Eğer benim uygulama içinde bir istisna atmak istiyorum eğer yerleşik .NET istisna sınıflarını kullanabilir miyim? Adil oyun? Benim kendi elde etmeli miyim?

CEVAP
20 EKİM 2008, PAZARTESİ


Creating and Throwing Exceptions bkz.

Atma üzerinde yerleşik istisnalar, diyor

Sistem atmayın.İstisna, Sistemi.SystemException, Sistemi.NullReferenceException, ya da Sistem.Kendi kaynağından bilerek kodu ındexoutofrangeexception.

ve

Genel İstisnalar Atmayın

Eğer genel durum türü, kütüphane veya bir çerçeve içinde Durum veya SystemException gibi atarsan, tüketicilerin tüm özel durumları işlemek için nasıl bilmiyorum bilinmeyen özel durumlar da dahil olmak üzere yakalamak için zorlar.

Bunun yerine, zaten çerçeve içinde var olan daha türetilmiş bir tür atmak ya da Özel türeyen kendi türü yaratmak."

blog entry Bu da bazı kurallar vardır.

Ayrıca, FxCop kod analizi "" described here. özel durumlar yükseltmeyin listesini tanımlar Bunu önerir:

Aşağıdaki özel durum türleri kullanıcı için yeterli bilgi sağlamak için çok genel

  • Sistem.Özel durum
  • Sistem.ApplicationException
  • Sistem.SystemException

Aşağıdaki özel durum türleri saklıdır ve yalnızca ortak dil çalışma zamanı tarafından atılmış olmalıdır:

  • Sistem.ExecutionEngineException
  • Sistem.Indexoutofrangeexception
  • Sistem.NullReferenceException
  • Sistem.OutOfMemoryException

Teoride herhangi bir diğer çerçeve özel durum türü Microsoft (MSDN belgelerine bakın) tarafından açıklanan açıkça istisna niyetini anlamak sağlayan yükseltebilirsiniz.

Not, Bu" ve bazı Diğerleri dediğim gibi Sistem.etrafında tartışma var "kurallar nelerdir Indexoutofrangeexception (pek çok geliştirici bu özel durum yani).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ionized Digital Air Studios

    Ionized Digi

    20 HAZİRAN 2009
  • Louis C.K.

    Louis C.K.

    18 HAZİRAN 2006
  • TheDamnWreckless

    TheDamnWreck

    12 Temmuz 2010