- 已关闭**。此问题为opinion-based。当前不接受答案。
- 想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。
2天前关闭。
Improve this question
在Spring的控制器中使用try/catch
是不是一个不好的做法?或者我应该捕获服务中的任何错误并将其返回给控制器?我的例子是:PlayerController
:
@DeleteMapping("/api/players/{id}")
ResponseEntity<String> deletePlayer(@PathVariable String id) {
try {
playerInterface.deletePlayer(Long.valueOf(id));
return ResponseEntity.ok().body(String.format("Player with id: %s has been deleted", id));
} catch (Exception e) {
return ResponseEntity.internalServerError().body("Could not delete a player");
}
}
和PlayerService
:
@Override
public void deletePlayer(Long id) {
playerRepository.deleteById(id);
}
我只是想知道以这种方式处理控制器中的异常是否没有什么不好的,或者它应该像我使用ExceptionHandler
处理GET操作那样在任何地方都可以完成?
一个一个二个一个一个一个三个一个一个一个一个一个四个一个
我只是想知道我应该遵循的标准是什么。我对Spring还是个新手。
1条答案
按热度按时间zfycwa2u1#
你提到的最新的现代方法是使用可选对象和orElseThrow捕捉错误。这可以防止出现空点异常,并考虑最佳实践。