【问题标题】:Sonar - Always use curly braces for if/else/for/while/do statements声纳 - 始终为 if/else/for/while/do 语句使用花括号
【发布时间】:2012-09-06 16:22:23
【问题描述】:

所以,我用 Sonar 分析了我的项目,我得到了这个奇怪的错误:Always use curly braces for if/else/for/while/do statements 我通常知道这是什么意思(而且我不会创建没有花括号的块)但在这种情况下很奇怪:错误主要出现在这种类型的代码中(使用 && 或 || 时),我想知道为什么:

if (isCreate && latitude && longitude) {
    ...some code here...
}

编辑:

整个代码:

var map = Ext.getCmp('map_canvas').getMap();

    var latitude = Ext.getCmp('latitudeCmp').getValue();
    var longitude = Ext.getCmp('longitudeCmp').getValue();

    if (isCreate && latitude && longitude) {
        var center = new google.maps.LatLng(latitude, longitude);
        map.setCenter(center);
        var marker = new google.maps.Marker({ position: center, map: map,icon: staticPath+'/images/residence_gMap.png'});
        markersArray.push(marker);
    } else if (latitude && longitude) {
        var center = new google.maps.LatLng(latitude, longitude);
        map.setCenter(center);
    } else if (!latitude && !longitude) {
        var siteEditAction = Seam.Component.getInstance('siteEditAction');
        siteEditAction.getGeolocalizationParameters(fillMapParamsCallback, exceptionHandler);
    }

【问题讨论】:

  • 错误或警告被视为错误??除非它是一个块,否则您不必使用花括号。我假设你的纬度和经度变量是布尔值??
  • 当您在报告中向下钻取时,它指向的行是什么?
  • @basiljames 它指向第一行,即带有 IF 的行;显示为严重违规。
  • @PaulG 我已经用几乎整个代码更新了我的问题。 isCreate 是布尔值,但经度和纬度不是,它们是纬度和经度值;如果它们是布尔值,我想我会遇到命名问题:)
  • 这不是java代码...?

标签: javascript sonarqube


【解决方案1】:

这可能是 Sonar Javascript 插件中的错误。您能否在 user@sonar.codhaus.org 邮件列表中报告您的案例:我们的语言团队会查看它,并可能在我们的 JIRA 上填写问题。

【讨论】:

  • 谢谢,我会填写一份报告……关于违规还有一件事:Sections of code should not be "commented out";我知道有时这是一种不好的做法,但有些 cmets 使用了一些“保留”字词(例如,如果我有如下评论:START office messages - 在这种情况下,声纳将其评估为违规)
  • 或者有时候你必须使用一些代码来对下面的方法/函数做解释
【解决方案2】:

正如我在声纳邮件列表 (http://markmail.org/message/dva7u5pxtggsiz7x) 中回答的那样:您面临以下两个问题,即 将在下一个版本中修复 - http://jira.codehaus.org/browse/SONARPLUGINS-2079http://jira.codehaus.org/browse/SONARPLUGINS-2200

【讨论】:

    猜你喜欢
    • 2012-02-02
    • 2017-06-14
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 2014-11-11
    相关资源
    最近更新 更多