Ho creato un'eccezione di base personalizzata che estende la classe Exception
. Più avanti sto estendendo la classe MyBaseException
da un'altra - questa classe di eccezione specyfic questa volta. E ora ho un problema con uno dei SonarQube - essere specioso con "Classi chiamate come" Eccezione "dovrebbero estendere la regola" Eccezione "o sottoclasse". dichiarazioni di classe sembra che:Eredità errata eccezione personalizzata
import org.apache.log4j.Logger;
import org.springframework.http.HttpStatus;
public class MyBaseException extends Exception {
public MyBaseException(int code, String message) {
super(message);
this.code = code;
LOGGER.error("Exception with HttpStatus code: " + code + " Msg: "
+ message);
}
public MyBaseException(HttpStatus code, String message) {
this(code.value(), message);
}
public int getCode() {
return code;
}
}
import org.springframework.http.HttpStatus;
public class SpecException extends MyBaseException {
public SpecException (HttpStatus code, String message) {
super(code, message);
}
public SpecException (int code, String message) {
super(code, message);
}
}
Il problema è solo con questo SpecException
. SonarQube non vede alcun problema con la prima ereditarietà. Suggerimento dato da SonarQube è: "Rinomina questa classe per rimuovere" Eccezione "o correggerne l'ereditarietà" ma penso che l'ereditarietà sia corretta poiché sto ereditando dalla sottoclasse di Exception
.
MyBaseException estende l'eccezione? Sembra che si stia lamentando di questo. – pvg
Sì, estende l'eccezione. Questa classe è valida per sonar. Il problema è con SpecException. – jester2580
Sì, non è davvero possibile dire senza un esempio minimo effettivo che mostra il problema. – pvg