繁体   English   中英

SonarQube 鱿鱼中的假阳性:S2583

[英]False positive in SonarQube squid:S2583

注意:此处的代码只是重新创建的最少代码,导致此问题的代码实际上涉及InitialContext对象。

SonarQube 规则鱿鱼:S2583,

更改此条件,使其不总是评估为“真”

实例化对象时似乎会产生误报,即使构造函数抛出已检查的异常也是如此。 作为一个最小的例子,

public void falsePositive()
{
  TestObject myValue = null;
  try
  {
    myValue = new TestObject();
  }
  catch (Exception e)
  {
    e.printStackTrace();
  }
  finally
  {
    if (myValue != null)
    {
      System.out.println("Not null");
    }
  }
}

TestObject声明为

public class TestObject
{
  public TestObject() throws Exception
  {
    throw new Exception();
  }
}

这会在if (myValue != null)行上产生一个问题,暗示myValue始终是非空的,但显然不是这种情况。

这是规则中的错误,还是我只是在这里遗漏了什么?

此问题是由于某些流分析错误引起的,已在 sonar java 插件版本 3.9 中解决

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM