- 此问题在此处已有答案**:
Order of @ExceptionHandler(3个答案)
6天前关闭。
我在Spring Boot中创建了一个自定义异常处理程序:
@RestControllerAdvice
public class DataApiExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(NoSuchElementException.class)
public final void **handleNoSuchElementException**(NoSuchElementException ex) {
System.err.println("This is throwing :"+ex.getMessage());
}
...
@ExceptionHandler({ Exception.class })
public ResponseEntity<Object> **handleAll**(final Exception ex) {
...
它会抛出异常
throw new NoSuchElementException("SomelogicalDescription");
但每次抛出这个NoSuchElementException时,都会执行handleAll而不是handleNoSuchElementException。
我可能遗漏了一些非常微不足道的东西。用NotFoundException更改NoSuchElementException没有任何区别。
1条答案
按热度按时间m1m5dgzv1#
您似乎不理解
@RestControllerAdvice
活动:注意:如果配置了适当的HandlerMapping-HandlerAdapter对(例如MVC Java配置和MVC命名空间中的默认值RequestMappingHandlerMapping-RequestMappingHandlerAdapter对),则会处理@RestControllerAdvice。RestControllerAdvice
请改用
@ControllerAdvice
:ControllerAdvice您有一个
void
处理程序-那么为什么您希望得到响应呢?你在那里返回什么?应该是这样的: