☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

if 分枝和隐含的 else 分枝不应完全相同

9.1.6 ID_if_identicalImplicitElseBlock
目录 › next › previous

带有 return、throw 或 break 等子句的 if 语句,其同一作用域的后续代码相当于它的 else 分枝,显然这种隐含的 else 分枝与 if 分枝完全相同是没有意义的,很可能是由复制粘贴造成的错误。

示例:

if (condition) {
    statements
    return;
}
statements  // Non-compliant
return;

例中 if 语句之内的 statements 以及 return 语句和 if 语句之外的语句完全相同,这种情况下 if 语句的条件判断是没有意义的,需修正本应存在的差异,或去掉 if 语句。

相关

ID_if_identicalElseIfBlock ID_if_identicalSucceedingBlock

参考

CWE-670
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.