使用属性抑制 Coverity 中的消息?

ang*_*son 4 c# coverity

我们使用 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 后抛出异常。

Dav*_*idG 7

以此站点为例,您可以在报告的错误行上方使用注释来抑制这些消息,但在您的情况下,您将使用该var_deref_model标签。例如:

// coverity[var_deref_model]
Run Code Online (Sandbox Code Playgroud)