我们使用Coverity来分析C#代码的缺陷。
我们有一些单元测试,可以显式地验证是否正确地处理空参数。
这些缺陷被Coverity列为缺陷。如果这是Microsofts自己的代码分析,我们可以标记我们的方法,使用[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));
...
}
}显式错误显示为
显式空取消引用(FORWARD_NULL) var_deref_model:将null传递给方法,方法在检查null后抛出异常。
发布于 2018-09-04 16:31:02
以本站中的一个例子为例,您可以在报告的错误行上方加上注释来抑制这些消息,但在您的示例中,您将使用var_deref_model标记。例如:
// coverity[var_deref_model]https://stackoverflow.com/questions/52148105
复制相似问题