Warnung CA2200: Erneut ausführen, um Stapeldetails beizubehalten.

Die .NET Code Analyzer-Regel CA2200 ist standardmäßig ab .NET 5 aktiviert. Es erzeugt eine Fehlerwarnung beim Erstellen für alle catch Blöcke, die eine Ausnahme neuauslösen, und die Ausnahme wird explizit in der throw Anweisung angegeben.

Änderungsbeschreibung

Ab .NET 5 enthält das .NET SDK .NET Source Code Analyzers. Einige dieser Regeln sind standardmäßig aktiviert, einschließlich CA2200. Wenn Ihr Projekt Code enthält, der gegen diese Regel verstößt und für die Behandlung von Warnungen als Fehler konfiguriert ist, kann diese Änderung ihren Build unterbrechen.

Regel CA2200 markiert Code, bei dem Ausnahmen erneut ausgelöst werden und die Ausnahmevariable in der throw-Anweisung angegeben wird. Wenn eine Ausnahme ausgelöst wird, ist ein Teil der darin enthaltenen Informationen die Stapelüberwachung. Die Stapelüberwachung ist eine Liste der Hierarchie der Methodenaufrufe, die mit der Methode beginnt, die die Ausnahme auslöst, und mit der Methode endet, die die Ausnahme abfängt. Wenn eine Ausnahme durch Angabe der Ausnahme in der throw-Anweisung erneut ausgelöst wird, startet die Stapelüberwachung bei der aktuellen Methode neu. Die Liste der Methodenaufrufe zwischen der ursprünglichen Methode, die die Ausnahme ausgelöst hat, und der aktuellen Methode geht verloren. Um die ursprünglichen Stapelüberwachungsinformation mit der Ausnahme beizubehalten, verwenden Sie die throw-Anweisung ohne Angabe der Ausnahme.

Der folgende Codeausschnitt erzeugt keine Warnung für Regel CA2200. Die kommentierte Zeile würde jedoch einen Verstoß auslösen.

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

Eingeführte Version

5.0

  • Lösen Sie Ausnahmen erneut aus, ohne die Ausnahme explizit anzugeben. Weitere Informationen finden Sie unter CA2200.

  • Um die Codeanalyse vollständig zu deaktivieren, legen Sie `EnableNETAnalyzers` auf `false` in Ihrer Projektdatei fest. Weitere Informationen finden Sie unter EnableNETAnalyzers.

Betroffene APIs

Kann nicht über API-Analyse erkannt werden.