我们使用 Coverity 来分析 C# 代码是否存在缺陷。
我们有一些单元测试可以明确验证空参数是否得到正确处理。
这些被 Coverity 列为缺陷。如果这是 Microsoft 自己的代码分析,我们可以用 来标记执行 null 传递的方法[SuppressMessage(...)],Coverity 是否有类似的功能?
我们不想让代码变得混乱到让 Coverity 感到困惑。
这是给出此缺陷的示例代码片段:
[Test]
public void SomeRandomTest()
{
var obj = new SomeRandomObject();
Assert.Throws<ArgumentNullException>(() => obj.Method(null));
}
...
public class SomeRandomObject
{
public void Method(object value)
{
if (value == null) throw new ArgumentNullException(nameof(value));
...
}
}
Run Code Online (Sandbox Code Playgroud)
显式错误显示为
显式 null 取消引用 (FORWARD_NULL)
var_deref_model:将 null 传递给 Method,该方法在检查 null 后抛出异常。
以此站点为例,您可以在报告的错误行上方使用注释来抑制这些消息,但在您的情况下,您将使用该var_deref_model标签。例如:
// coverity[var_deref_model]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6608 次 |
| 最近记录: |