Sonarqube 定义了一条规则,说 永远不应该抛出 通用异常(即抛出专用异常而不是使用通用异常。)
但是 AOP ProceedingJoinPoint 总是抛出通用的 Throwable 并且通常我对异常根本不感兴趣,只是从这样的方法中抛出它:

@Around(...)
public void someMethod(ProceedingJoinPoint point) throws Throwable {
    // do something...
    point.proceed();
    // do something else...
}

显然,这违反了上述 Sonarqube 规则。我真的必须用 try catch 包装它并记录 throwable 或其他东西吗?这方面的最佳做法是什么?

最佳答案

您可以安全地将此违规标记为 误报 并输入描述性评论。这种误报应该很少见,以便您可以单独对待它们,并采取相应的行动——AoP API 是一个很好的例子,遗留和/或编写不当的库是另一个例子。但不要将文件添加到排除项中,因为您会从 Sonar 分析中丢失其他规则

关于java - Sonarqube 将 AOP Throwable 视为问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35221627/

10-12 05:09