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”的声明,这是一个运行时异常
我应该删除声明还是应该Exception在MyCustomException类中扩展而不是RunTimeException?
声纳问题主要是基于意见的。
ARuntimeException不会被强制处理和声明,但在记录这种情况的方法中声明它并不是一个坏习惯。
我应该删除声明还是应该扩展 MyCustomException 类中的 Exception 而不是 RuntimeException
如果您认为这MyCustomException是必须由客户端处理的异常,MyCustomException则应该派生自 Exception 而不是RuntimeException.
否则,如果在大多数情况下客户端无法处理异常,则您应该删除声明以使 Sonar 满意,或者如果您认为传达异常是有意义的,则将(至少尝试)此问题标记为误报,即使它是一个RuntimeException。