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
Önerilen eylem
Ö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.