CA1511: Use ArgumentException throw helper
Property | Value |
---|---|
Rule ID | CA1511 |
Title | Use ArgumentException throw helper |
Category | Maintainability |
Fix is breaking or non-breaking | Non-Breaking |
Enabled by default in .NET 8 | As suggestion |
Cause
Code checks whether an argument is null
or an empty string and then conditionally throws an ArgumentException.
Rule description
Argument checks have a substantial impact on code size and often dominate the code for small functions and property setters. These checks prevent inlining and cause substantial instruction-cache pollution. Throw-helper methods such as ArgumentException.ThrowIfNullOrEmpty(String, String) are simpler and more efficient than if
blocks that construct a new exception instance.
Example
The following code snippet shows a violation of CA1511:
void M(string arg)
{
if (string.IsNullOrEmpty(arg))
throw new ArgumentException("", "arg");
}
The following code snippet shows the fix:
void M(string arg)
{
ArgumentException.ThrowIfNullOrEmpty(arg);
}
How to fix violations
Replace the if
block that throws the exception with a call to ArgumentException.ThrowIfNullOrEmpty(String, String). Or, in Visual Studio, use the lightbulb menu to fix your code automatically.
When to suppress warnings
It's safe to suppress a violation of this rule if you're not concerned about the maintainability of your code. It is also fine to suppress violations that are identified to be false positives.
Suppress a warning
If you just want to suppress a single violation, add preprocessor directives to your source file to disable and then re-enable the rule.
#pragma warning disable CA1511
// The code that's violating the rule is on this line.
#pragma warning restore CA1511
To disable the rule for a file, folder, or project, set its severity to none
in the configuration file.
[*.{cs,vb}]
dotnet_diagnostic.CA1511.severity = none
For more information, see How to suppress code analysis warnings.
Feedback
https://aka.ms/ContentUserFeedback.
În curând: Pe parcursul anului 2024, vom elimina treptat Probleme legate de GitHub ca mecanism de feedback pentru conținut și îl vom înlocui cu un nou sistem de feedback. Pentru mai multe informații, consultați:Trimiteți și vizualizați feedback pentru