当前位置: 首页 > 知识库问答 >
问题:

声纳抱怨记录或重新抛出异常

楮庆
2023-03-14

在将SonarQube与Maven集成后,运行SonarQube进行代码质量检查时,我有以下代码。

然而,Sonar抱怨说,我应该记录或者重播这个异常。

我错过了什么?谁能帮我一下吗。

public ShippingResponse processShipping(ShippingRequest request) {
        log.debug("Processing Reservation Request ....");
        try{
            return helper.processShippingMethod(request);
        } catch (ServiceException serviceException) {
            log.error(RESERVATION_EXCE, ExceptionUtils.getStackTrace(serviceException));
            throw serviceException;
        } catch (Exception e) {
            throw new ServiceException(ErrorMessages.EPO_SM_ERR_03, e.getMessage());
        }
    }

共有1个答案

任飞鸣
2023-03-14

Sonar试图指出的一点是,理想情况下,打印或保留异常的根本原因,因此基本上是堆栈。通过传递exception对象来保留它,因为如果只保留消息,则会丢失所有信息。为了让sonar满意,您可以打印堆栈跟踪(log.error(ErrorMessages.EPO\u SM\u ERR\u 03,e)),或者重新抛出一个新的异常,将Throwable对象传递给构造函数。

因此,理想的解决方案是像这样使用服务异常;

public class ServiceException extends Exception {
    public ServiceException(String message, Throwable cause) {
        super(message, cause);
    }
}
throw new ServiceException(ErrorMessages.EPO_SM_ERR_03, e);
 类似资料:
  • 问题内容: 我的程序中包含以下代码,并将其与Maven集成后,我正在运行SonarQube 5以对其进行代码质量检查。 但是,Sonar抱怨我应该 记录或重新抛出此异常 。 我在这里想念什么?我还没有记录异常吗? 问题答案: 您应该这样做: 声纳不应该再打扰您了

  • 我的程序中有下面的代码,在与Maven集成后,我正在运行SonarQube 5进行代码质量检查。 然而,Sonar抱怨说,我应该记录或者重播这个异常。 我错过了什么?我还没有记录异常吗?

  • 我的程序中有下面的代码,在与Maven集成后,我正在运行SonarQube 5进行代码质量检查。 然而,Sonar抱怨说,我应该记录或者重播这个异常。 我错过了什么?

  • 我有以下一段代码在我的程序,我正在运行SonarQube 5的代码质量检查后,它与Maven集成。 然而,Sonar要求删除这个对局部变量“session”的无用赋值。

  • 声纳可能重复,抱怨记录和重新触发异常。 这是我在类中的代码: 和我的日志类: 声纳指向捕获(最终异常e)并表示记录或重新抛出此异常。你觉得怎么样?

  • 从LoginPage重定向到登入。在登机时,点击一个按钮,需要显示底部的工作表。使用命名路线进行导航。 稍后在Loginpage中将使用navigator.pushnamed(上下文,'/onboarding')导航到onboarding;重定向。 这是主飞镖