我想构建一个服务层处理用户。
您处理无效ID的建议是什么?返回可选或抛出异常?服务层由表示层调用,返回html视图。
也许还有关于在表示层中处理错误的问题? (默认错误页面,记录,...)
可选
public Optional<User> findOne( Long id ) {
try {
User user = userRepository.findOne( id );
return Optional.ofNullable( user );
// something blow up in the Repository Layer
} catch ( Exception ex ) {
throw new ServiceException( ex );
}
}
异常
public User findOne( Long id ) {
try {
User user = userRepository.findOne( id );
// something blow up in the Repository Layer
} catch ( Exception ex ) {
throw new ServiceException( ex );
}
if ( user == null )
throw new ServiceException( "Invalid Id" );
return user;
}