@RestControllerAdvice+@ExceptionHandler不生效
时间: 2024-01-14 11:19:44 浏览: 157
当使用@RestControllerAdvice和@ExceptionHandler时,如果不生效,可能是以下原因之一:
1.确保您的异常处理类被正确扫描并注册到Spring容器中。
2.确保您的异常处理方法的参数列表正确,并且与抛出的异常类型匹配。
3.确保您的异常处理方法的返回类型正确,并且与您的应用程序的响应类型匹配。
4.确保您的异常处理方法的注释中包含@ExceptionHandler注释,并且指定了要处理的异常类型。
5.确保您的异常处理方法的注释中包含@ResponseBody注释,以确保响应正文正确地序列化为JSON格式。
以下是一个使用@RestControllerAdvice和@ExceptionHandler处理自定义异常的示例:
```java
@RestControllerAdvice
public class CustomExceptionHandler {
@ExceptionHandler(CustomException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ErrorResponse handleCustomException(CustomException ex) {
return new ErrorResponse(ex.getMessage());
}
}
public class CustomException extends RuntimeException {
public CustomException(String message) {
super(message);
}
}
public class ErrorResponse {
private String message;
public ErrorResponse(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
```
阅读全文