我有一些服务类,其中包含多个抛出错误的方法,抛出错误的方法的一个例子:
public Optional<Item> getItemById(Long itemId) throws Exception {
return Optional.of(itemRepository.findById(itemId).
orElseThrow(() -> new Exception("Item with that id doesn't exist")));
}
我应该在@ControllerAdvice的注解类中捕捉错误吗?我应该如何做?
1条答案
按热度按时间pobjuy321#
标记为@ControllerAdvice的控制器会拦截当请求到达时调用的堆栈中抛出的任何异常。如果问题是你是否应该用ControllerAdvice捕捉错误,这取决于你,但它允许你在抛出异常时自定义行为。要做到这一点,你应该创建一个如下所示的类: