Aracılığıyla paylaş


Standart Özel Durum Türlerini Kullanma

Not

Bu içerik, Çerçeve Tasarım Yönergeleri: Kurallar, Deyimler ve Yeniden Kullanılabilir .NET Kitaplıkları için Desenler, 2. Sürüm'den Pearson Education, Inc.'in izniyle yeniden yazdırılır. Bu baskı 2008'de yayımlandı ve kitap o zamandan beri üçüncü baskıda tamamen revize edilmiştir. Bu sayfadaki bazı bilgiler güncel olmayabilir.

Bu bölümde, Çerçeve tarafından sağlanan standart özel durumlar ve bunların kullanım ayrıntıları açıklanmaktadır. Liste hiçbir şekilde kapsamlı değildir. Diğer Framework özel durum türlerinin kullanımı için lütfen .NET Framework başvuru belgelerine bakın.

Özel Durum ve SystemException

❌VEYA System.SystemExceptionATMAYINSystem.Exception.

❌ Yeniden yıkmayı düşünmüyorsanız, çerçeve kodunu YAKALAMAYIN System.ExceptionSystem.SystemException .

❌en üst düzey özel durum işleyicileri dışında veya System.SystemExceptionyakalamaKTAN System.Exception KAÇıNıN.

Applicationexception

❌ ATMAYIN veya 'den ApplicationExceptiontüretmeYİN.

InvalidOperationException

✔️ Nesne uygun olmayan bir durumdaysa DO bir oluşturur InvalidOperationException .

ArgumentException, ArgumentNullException ve ArgumentOutOfRangeException

✔️ BIR üyeye hatalı bağımsız değişkenler geçirilirse DO, alt türlerinden birini veya onun alt türlerinden birini oluşturur ArgumentException . Varsa, en türetilmiş özel durum türünü tercih edin.

✔️ öğesinin ParamName alt sınıflarından ArgumentExceptionbirini oluştururken özelliğini AYARLAYIN.

Bu özellik, özel durumun oluşturulmasına neden olan parametrenin adını temsil eder. Özelliğin oluşturucu aşırı yüklemelerinden biri kullanılarak ayarlanabileceğini unutmayın.

✔️ DO, özellik ayarlayıcılarının örtük değer parametresinin adı için kullanılır value .

NullReferenceException, IndexOutOfRangeException ve AccessViolationException

❌Genel olarak çağrılabilen API'lerin , AccessViolationExceptionveya IndexOutOfRangeExceptionaçıkça veya örtük olarak oluşturmasına NullReferenceExceptionizin VERMEYİn. Bu özel durumlar ayrılmıştır ve yürütme altyapısı tarafından oluşturulur ve çoğu durumda bir hata gösterir.

Bu özel durumların oluşmasını önlemek için bağımsız değişken denetimi yapın. Bu özel durumların atılması, yönteminizin zaman içinde değişebilecek uygulama ayrıntılarını ortaya çıkarır.

Stackoverflowexception

❌ DO NOT explicitly throw StackOverflowException. Özel durum açıkça yalnızca CLR tarafından oluşturulmalıdır.

❌ YAKALAMAYIN StackOverflowException.

Rastgele yığın taşması varlığında tutarlı kalan yönetilen kod yazmak neredeyse imkansızdır. CLR'nin yönetilmeyen bölümleri, yığın taşmalarını rastgele yığın taşmalarından geri çekerek değil iyi tanımlanmış yerlere taşımak için yoklamalar kullanılarak tutarlı olmaya devam eder.

Outofmemoryexception

❌ DO NOT explicitly throw OutOfMemoryException. Bu özel durum yalnızca CLR altyapısı tarafından oluşturulmalıdır.

ComException, SEHException ve ExecutionEngineException

❌AÇıKÇA , ExecutionEngineExceptionve SEHExceptionOLUŞTURMAYINCOMException. Bu özel durumlar yalnızca CLR altyapısı tarafından oluşturulmalıdır.

Porsiyonlar © 2005, 2009 Microsoft Corporation. Tüm hakları saklıdır.

Pearson Education, Inc. in Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraryes, 2nd Edition by Krzysztof Cwalina and Brad Abrams izniyle yeniden yazdırıldı ve 22 Ekim 2008'de Addison-Wesley Professional tarafından Microsoft Windows Geliştirme Serisi'nin bir parçası olarak yayımlandı.

Ayrıca bkz.