SONAR 扩展异常还是运行时异常?

shi*_*til 5 java exception sonarlint

我有一个自定义异常类写为

 public class MyCustomException extends RuntimeException {
    public MyCustomException(Throwable cause) {
        super(cause);
      }

        enter code here

      /**
       * @param message
       * @param cause
       */
      public MyCustomException(String message, Throwable cause) {
        super(message, cause);
      }
    }
Run Code Online (Sandbox Code Playgroud)

在我的serviceImpl层

 @Override
        public List<SiteDetails> getSite() throws MyCustomException {
    }
Run Code Online (Sandbox Code Playgroud)

SONAR(用于 linting 的 Ecplise IDE 插件)指出:

删除抛出异常“.MyCustomException”的声明,这是一个运行时异常

我应该删除声明还是应该ExceptionMyCustomException类中扩展而不是RunTimeException

dav*_*xxx 6

声纳问题主要是基于意见的。
ARuntimeException不会被强制处理和声明,但在记录这种情况的方法中声明它并不是一个坏习惯。

我应该删除声明还是应该扩展 MyCustomException 类中的 Exception 而不是 RuntimeException

如果您认为这MyCustomException是必须由客户端处理的异常,MyCustomException则应该派生自 Exception 而不是RuntimeException.

否则,如果在大多数情况下客户端无法处理异常,则您应该删除声明以使 Sonar 满意,或者如果您认为传达异常是有意义的,则将(至少尝试)此问题标记为误报,即使它是一个RuntimeException