个人认为:“密码不正确”不属于DAO异常,而属于业务异常,DAO是数据访问的抽象层,因此,只有数据访问的错误才在DAO抛出,例如:数据库连接断开,ID找不到对应的数据等“Unchecked Exception”
因此,判断用户密码是否正确的逻辑应该在Sevice层做:
public UserManagementServiceImpl implements UserManagementService {
public void login(String loginName,String password) throws ServiceException {
UserDO userDO = userDAO.getUserByLoginName(loginName);
if(userDO==null)
throw new ServiceException("User doesn't exist!");
if(!userDO.getPassword().equals(encode(password)))
throw new ServiceException("Password is wrong!");
}
}