La gestion des exceptions Java est subdivisée en Erreurs, exceptions vérifiées et exceptions non contrôlées. Cette question concerne les exceptions.Java Micro-boot de démarrage d'exception Gestion des exceptions
gestion des exceptions Java normale est d'étendre la classe d'exception pour les exceptions et vérifiés gérer ceux que vous avez besoin en prenant en compte la hiérarchie des exceptions.
par exemple .:
public class ExceptionA extends Exception {}
public class RunClass {
public static void main() {
try {
RunClass runClass = new RunClass();
runClass.doSomething();
} catch(ExceptionA eA) {
// Do ExceptionA related resolutions.
} catch(Exception e) {
// Do Exception related resolutions.
}
}
public doSomething() throws ExceptionA {
throw new ExceptionA();
}
}
Mais j'ai vu les grands livres de printemps et même sur les tutoriels Internet mentionnés avec le printemps-démarrage et dans le cadre des micro-services Déployez toujours de la classe RuntimeException même avec le @ControllerAdvice.
Ceci est une violation flagrante des principes de base Java de gestion des exceptions. Mais il y a toujours un argument disant que, il est étendu avec RuntimeException parce que cette exception est gérée par la méthode @ExceptionHandler et qu'il est généré et manipulé à la fois dans le runtime.
encore, en raison de cette extension de RuntimeException fait compiler piste la gestion des exceptions de temps non visible et rend difficile de retracer comment exception est levée vers le haut. En raison de ces raisons, je crois toujours, suivez le concept de gestion des exceptions vérifiées et non contrôlées Java de base toujours avec la méthode @ExceptionHandler.
.: par exemple
public class ExceptionRA extends RuntimeException {}
@ContollerAdvice
public class ExceptionHandler {
@ExceptionHandler(ExceptionRA.class)
public String handleException (Exception exception, Model model) {
return "exception";
}
}
@Controller
public class RunClass {
@RequestMapping("/url1")
public doSomething() {
throw new ExceptionRA();
}
}
Dois-je suivre l'extension RuntimeException pour tous les scénarios d'exception avec @ExcpetionHadler ou suivre Java de base vérifié et mécanisme sans contrôle avec @ExceptionHaldler? Les idées, suggestions et corrections sont les bienvenues.
@lexocore: Ajouté la question – Chinthaka