gpt4 book ai didi

sonarqube - 如何更改 Sonar 中的 Squid 规则?

转载 作者:行者123 更新时间:2023-12-02 22:20:30 28 4
gpt4 key购买 nike

我是 SonarQube 和 Squid(以及 CheckStyle、FindBugs 和 PMD)的新手。我正在使用 SonarQube 4.1.1。以及默认的“Sonar way with Findbugs”质量配置文件来评估我的一些 Java 项目。

在我的分析结果中,我从 Squid 中得到了大量相同的关键问题:

Exception handlers should provide some context and preserve the original exception When handling a caught exception, two mandatory informations should be either logged, or present in a rethrown exception:

  • Some context to ease the reproduction of the issue.
  • The original's exception, for its message and stack trace.

在我的代码中,我使用记录器,例如

catch(Exception e) {
LOG.error(SampleClass.class.getSimpleName() + ": " + e);
}

为什么这条规则会被取消?记录异常。是因为我不使用“记录器”而是使用“日志”吗?

我的第二个问题是:我在哪里可以查看和更改 Squid 规则,也许还可以添加一些我自己的规则?据我了解 FindBug、CheckStyle 和 PMD,我可以编写自己的规则。 Squid 也可以这样做吗?

最佳答案

我相信该规则正在被触发,因为您正在记录来自异常 e 的简单 toString() 消息,而不是完整的堆栈跟踪。类似的东西

LOG.error(SampleClass.class.getSimpleName() + ": " + e, e); 

满足规则。

SonarQube 对于每个规则定义都有非常好的合规/不合规代码示例。在问题或质量配置文件中展开规则名称以查看示例。

您可以通过创建自己的继承自“Sonar Way...”的配置文件来更改默认质量配置文件(某些方面),然后更改规则。您需要拥有 SonarQube 的管理员权限才能执行此操作,然后导航到质量配置文件即可开始。

例如,考虑到您正在查看的特定问题在我们的遗留代码中出现的次数,我们的团队认为该问题不应为“严重”问题。我们继承自 Sonar Way 创建了自己的配置文件,并且很容易将这条规则的严重性降低到 Major。我们更改了许多规则,更改阈值和/或正则表达式以更好地满足我们的需求。我们还没有看到需要编写新规则,所以除了建议检查文档之外,我无法告诉您如何做到这一点。

关于sonarqube - 如何更改 Sonar 中的 Squid 规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21630311/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com