1
使用異常我已閱讀,使用異常的控制流不好,但我怎麼能實現不拋出異常輕鬆以下?因此,如果用戶輸入已經使用的用戶名,我想在輸入字段旁邊顯示錯誤消息。下面是從我的註冊頁面支持bean代碼:控制流
public String signUp() {
User user = new User(username, password, email);
try {
if (userService.save(user) != null) {
// ok
}
else {
// not ok
}
}
catch (UsernameInUseException e) {
// notify user that username is already in use
}
catch (EmailInUseException e) {
// notify user that email is already in use
}
catch (DataAccessException e) {
// notify user about db error
}
return "index";
}
保存我的userService的方法:
@Override
@Transactional
public User save(User user) {
if (userRepository.findByUsername(user.getUsername()) != null) {
LOGGER.debug("Username '{}' is already in use", user.getUsername());
throw new UsernameInUseException();
}
else if (userRepository.findByEmail(user.getEmail()) != null) {
LOGGER.debug("Email '{}' is already in use", user.getEmail());
throw new EmailInUseException();
}
user.setPassword(BCrypt.hashpw(user.getPassword(), BCrypt.gensalt()));
user.setRegisteredOn(DateTime.now(DateTimeZone.UTC));
return userRepository.save(user);
}
你使用任何框架?或者它只是簡單的基於Servlet-JSP的Web應用程序? –
我使用的是JSF 2.2,Spring 3.2和Hibernate 4.2 – perak