首页 > 解决方案 > 状态 NotFound 的自定义异常处理程序

问题描述

我想为 Spring Boot 的状态 NotFoundException 实现自定义异常处理程序:

@ExceptionHandler({ AccessDeniedException.class, NotFoundException.class })
public ResponseEntity<ErrorResponseDTO> accessDeniedExceptionHandler(final AccessDeniedException ex) {
    ......
}

我找不到什么是正确的进口NotFoundException你知道什么例外对于这种情况什么是正确的进口?

标签: javaspringspring-bootexception

解决方案


为 a 添加异常处理程序NoHandlerFoundException

@ExceptionHandler(NoHandlerFoundException.class)
public ResponseEntity<ErrorResponseDto> handle(NoHandlerFoundException e) {
    // ...
}

或者让您的控制器建议扩展ResponseEntityExceptionHandler并覆盖该handleNoHandlerFoundException方法。

顺便说一句,您的代码片段为两个不同的异常声明了一个处理程序,而方法参数final AccessDeniedException ex显式地期望一个类型为 的异常AccessDeniedException。我建议要么声明多个处理程序方法,要么将参数概括为一个Exception


推荐阅读