Uyarı CA2200: Yığın ayrıntılarını korumak için yeniden kullanın

.NET kod çözümleyicisi kuralı CA2200 varsayılan olarak .NET 5'te başlayarak etkindir. Bir özel durumu yeniden oluşturan tüm catch bloklar için bir derleme uyarısı oluşturur ve özel durum deyiminde throw açıkça belirtilir.

Açıklama değiştirildi

.NET 5'den başlayarak .NET SDK'sı .NET kaynak kodu çözümleyicilerini içerir. Ca2200 de dahil olmak üzere bu kuralların bazıları varsayılan olarak etkindir. Projeniz bu kuralı ihlal eden bir kod içeriyorsa ve uyarıları hata olarak değerlendirecek şekilde yapılandırılmışsa, bu değişiklik derlemenizi bozabilir.

Kural CA2200, özel durumların yeniden atıldığı ve özel durum değişkeninin deyiminde throw belirtildiği kodu işaretler. Bir özel durum oluşturulduğunda, taşıdığı bilgilerin bir bölümü yığın izlemesi olur. Yığın izlemesi, özel durumu oluşturan yöntemiyle başlayan ve özel durumu yakalayan yöntemle biten yöntem çağrısı hiyerarşisinin listesidir. Deyiminde throw özel durum belirtilerek bir özel durum yeniden oluşturulursa, yığın izlemesi geçerli yöntemde yeniden başlatılır ve özel durumu oluşturan özgün yöntem ile geçerli yöntem arasındaki yöntem çağrıları listesi kaybolur. Özgün yığın izleme bilgilerini özel durumla birlikte tutmak için özel durum belirtmeden deyimini kullanın throw .

Aşağıdaki kod parçacığı CA2200 kuralı için uyarı oluşturmaz. Ancak, açıklama satırı bir ihlal tetikleyebilir .

catch (ArithmeticException e)
{
    // throw e;
    throw;
}

Sürüm kullanıma sunulmuştur

5.0

  • Özel durumu açıkça belirtmeden özel durumları yeniden oluştur. Daha fazla bilgi için bkz . CA2200.

  • Kod analizini tamamen devre dışı bırakmak için proje dosyanızda olarak false ayarlayınEnableNETAnalyzers. Daha fazla bilgi için bkz . EnableNETAnalyzers.

Etkilenen API’ler

API analizi aracılığıyla algılanamaz.