Sonar - 先决条件与长条件块的保护子句

wrs*_*der 6 sonarqube

Sonar 中是否有一项检查可以确定何时可以使用保护子句检查先决条件,而不是将方法的整个主体包装在块中if

换句话说,我希望 Sonar 帮助我找到机会重构这样的东西

 void method(args) {
   if (precondition(args)) {
     // do rest of method
   }
   // no other code after conditional
 }
Run Code Online (Sandbox Code Playgroud)

进入这个:

void method(args) {
    if (!precondition(args)) {
      return;
    }
    // do rest of method;
 }
Run Code Online (Sandbox Code Playgroud)

这提高了可读性并减少了方法体内条件语句的嵌套深度。

声纳中的什么规则对此有帮助?

循环复杂度听起来像是错误的度量,因为早期返回使方法得分变得更复杂,而条件的数量是相同的。我正在寻找像平均嵌套深度这样的指标。