im en utilisant spring + hibernate pour une application de bureau.Où et comment gérer les exceptions spring + hibernate?
Je suis en train de le construire avec une mise en œuvre en couches, donc j'ai:
couche GUI --call -> couche de service --call -> couche OAC
Un petit exemple pour mieux exapliquer ma situation:
// In GUI layer
private void actionPerformed(ActionEvent evt){
addUser();
}
private void addUser(){
// Check gui validation for user inputs
if(inputIsValid()){
String username=nameText.getText();
String pass=passText.getText();
//Now call service layer
userService.createUser(username, pass);
// Now here i want to show a message to user like
// "Operation successful" or "Operation failed"
// or more sofisticated message like "User with same name already exists"
}
}
// Service layer
@Transactional
public void createUser(String name, String pass){
User user=new User(name, pass);
userDao.save(user);
}
// Another service layer example,
@Transactional
public boolean createUser(String name, String pass){
User user=new User(name, pass);
try{
userDao.save(user);
}
catch(Exception ex){
Log(ex);
return false;
}
return true;
// In this case GUI layer can know if save is succesful, but it can't know WHY
// the save is failed : some username? DB service shutdown? etc..
}
Le problème est: qui rejette l'exception et qui la gère?
Je pense que DAO doit jeter la première exception, et la couche de service le relire, et enfin la couche GUI gérer l'exception, donc je peux montrer le message à l'utilisateur, est-ce bon? Il y a un moyen de construire des exceptionsHandler en utilisant le printemps?
Quelle est la meilleure pratique pour gérer les exceptions en utilisant spring + hibernate?
Merci.