CA2219: İstisna işleyicileri içinde istisna fırlatmayın

Özellik Değer
Kural Kimliği CA2219
Başlık İstisna bloklarında hata oluşumuna neden olmayın
Kategori Kullanım
Düzeltme bozucu ya da bozmayan olabilir Kırılmayan, Bozulabilir
.NET 10'da varsayılan olarak etkin Öneri olarak
Geçerli diller C# ve Visual Basic

Neden

Bir özel durum finally, filtre veya hata yan tümcesinden fırlatılır.

Kural açıklaması

İstisna durum cümleciğinde bir istisna oluştuğunda, hata ayıklamak büyük ölçüde zorlaşır.

Özel bir durum finally veya bir hata yan tümcesinde meydana geldiğinde, varsa yeni özel durum mevcut etkin özel durumu gizler. Bu, özgün hatayı algılamayı ve hata ayıklamayı zorlaştırır.

Bir filtre yan tümcesinde özel durum oluştuğunda, çalışma zamanı özel durumu sessizce yakalar ve filtrenin false olarak değerlendirilmesine neden olur. False olarak değerlendirilen filtre ile filtreden atılan özel durum arasındaki farkı anlamanın bir yolu yoktur. Bu, filtrenin mantığındaki hataları algılamayı ve hatalarını ayıklamayı zorlaştırır.

İhlalleri düzeltme

Bu kuralın ihlalini düzeltmek için, bir finally, filtre veya hata yan tümcesinden açıkça istisna oluşturmayın.

Example

try
{
    // ...
}
finally
{
    // This code violates the rule.
    throw new Exception();
}

Uyarıların ne zaman bastırılması gerekiyor?

Bu kural için bir uyarıyı gizlemeyin. Bir istisna yan tümcesinde ortaya çıkan bir özel durumun yürütülen koda bir avantaj sağladığı senaryo yoktur.

CA1065: Beklenmedik konumlarda özel durumlar tetiklemeyin

Ayrıca bkz.