Je travaille sur une application qui a différentes couches (Handlers -> Services -> DAO).Comment encapsuler les exceptions des gestionnaires?
EmployeeHandler {
Employee get(){...}
Employee save(){...}
Employee update(){...}
etc(){...}
}
CompanyHandler {
Company get(){...}
Company save(){...}
Company update(){...}
etc(){...}
}
ManagerHandler {
Manager get(){...}
Manager save(){...}
Manager update(){...}
etc(){...}
}
Les gestionnaires sont ceux qui interceptent les exceptions. Ils ont les mêmes méthodes mais avec une implémentation différente, j'effectue quelques validations et plus de tâches requises.
Manager save(){
try{
// do something
employeeService.save(employee);
}
catch (MyCustomException e) {
// handle exception -- here I do the same for each method in all handlers
}
catch (Exception e) {
// catch any exception -- here I also do the same thing for all handlers
}
}
Donc, fondamentalement, le seul code qui change est celui à l'intérieur du bloc « essayer », le reste est le même dans chaque gestionnaire.
Je veux encapsuler la gestion des exceptions de sorte que je n'ai pas à répéter partout, et à l'avenir Si je dois gérer une exception différente, je n'ai pas à faire la modification dans tous les gestionnaires. L'idée que j'ai est que depuis que j'utilise Spring, je pourrais créer un bean 'ExceptionHandler' afin qu'il puisse être injecté dans tous les gestionnaires, mais je voudrais savoir s'il y a de meilleurs moyens pour réaliser ce que je veux.