gpt4 book ai didi

Spring MVC : Optional vs Exceptions in Service Layer

转载 作者:行者123 更新时间:2023-12-05 03:09:05 25 4
gpt4 key购买 nike

我想构建一个处理用户的服务层

您对处理无效 ID 有何建议。返回 Optional 还是抛出异常?服务层由返回 html View 的表示层调用。

也许还涉及处理表示层中的错误? (默认错误页面、日志记录...)

可选

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;
}

最佳答案

我想这更像是一个哲学问题,而不是编程问题。

例如,您有用户登录到您的系统。

当您尝试获取用户详细信息时 userService.getDetails(userId),您应该抛出异常(因为如果没有关于他的额外数据,您就无法记录 used)——这是错误。

但是如果您尝试获取他的 friend userService.getFriends(userId),如果没有任何具有给定 id 的记录也没关系。所以 Optional 在这种情况下是很好的回应。

我是这样想的。

关于 Spring MVC : Optional vs Exceptions in Service Layer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43829927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com