CA1511: Verwenden des ArgumentException-Throw-Hilfsprogramms
Eigenschaft | Wert |
---|---|
Regel-ID | CA1511 |
Titel | Verwenden des ArgumentException-Throw-Hilfsprogramms |
Kategorie | Wartbarkeit |
Fix führt oder führt nicht zur Unterbrechung | Nicht unterbrechend |
Standardmäßig in .NET 8 aktiviert | Als Vorschlag |
Ursache
Code überprüft, ob ein Argument null
oder eine leere Zeichenfolge ist, und löst dann abhängig davon eine ArgumentException aus.
Regelbeschreibung
Argumentprüfungen wirken sich erheblich auf die Codegröße aus und beherrschen häufig den Code für kleine Funktionen und Eigenschaftssetter. Diese Überprüfungen verhindern das Einfügen und verursachen eine erhebliche Belastung des Befehlszwischenspeichers. Throw-Hilfsmethoden wie ArgumentException.ThrowIfNullOrEmpty(String, String) sind einfacher und effizienter als if
-Blöcke, die eine neue Ausnahmeinstanz erstellen.
Beispiel
Das folgende Codeschnipsel zeigt einen Verstoß gegen CA1511:
void M(string arg)
{
if (string.IsNullOrEmpty(arg))
throw new ArgumentException("", "arg");
}
Das folgende Codeschnipsel zeigt ein Beispiel:
void M(string arg)
{
ArgumentException.ThrowIfNullOrEmpty(arg);
}
Behandeln von Verstößen
Ersetzen Sie den if
-Block, der die Ausnahme auslöst, durch einen Aufruf von ArgumentException.ThrowIfNullOrEmpty(String, String). Oder verwenden Sie in Visual Studio das Glühbirnenmenü, um Ihren Code automatisch zu korrigieren.
Wann sollten Warnungen unterdrückt werden?
Es ist sicher, einen Verstoß gegen diese Regel zu unterdrücken, wenn Sie sich keine Gedanken über die Wartbarkeit Ihres Codes machen. Es ist auch in Ordnung, Verstöße zu unterdrücken, die als falsch positive Ergebnisse identifiziert werden.
Unterdrücken einer Warnung
Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder zu aktivieren.
#pragma warning disable CA1511
// The code that's violating the rule is on this line.
#pragma warning restore CA1511
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdatei auf none
fest.
[*.{cs,vb}]
dotnet_diagnostic.CA1511.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.